简单的通信----使用Socket实现TCP协议
Posted snailsrunning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的通信----使用Socket实现TCP协议相关的知识,希望对你有一定的参考价值。
使用Socket实现TCP协议,分为Client和Server。
Client端代码
package com.demo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
/**
*
* @author Lynn
* 使用Socket类实现TCP协议; Socket常用的构造方法:Socket(InetAddress address, int
* port)和 Socket(String host, int port) 客户端给服务端发送信息,服务端输出此信息到控制台上;
*
*/
public class Demo02 {
// 客户端;
public static void main(String[] args) {
InetAddress inet;
Socket socket = null;
OutputStream out = null;
try {
inet = InetAddress.getLocalHost();
//这里填写服务器端的ip和端口号;
socket = new Socket(inet, 6868);
out = socket.getOutputStream();
out.write("我是客户端".getBytes());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if(out!=null) {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
Server端代码
package com.demo;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Demo03 {
// 服务器端;
public static void main(String[] args){
//端口号;
ServerSocket serverSocket=null;
Socket socket =null;
InputStream in = null;
try {
serverSocket = new ServerSocket(6868);
socket = serverSocket.accept();
in = socket.getInputStream();
byte[] content = new byte[20];
int length;//记录真正数据的长度;
while ((length = in.read(content)) != -1) {
String str = new String(content, 0, length);
System.out.println(str);
}
} catch (Exception e) {
// TODO: handle exception
}finally {
if(in!=null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(serverSocket!=null) {
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
运行结果
需要先启动server端代码,再启动client端代码
以上是关于简单的通信----使用Socket实现TCP协议的主要内容,如果未能解决你的问题,请参考以下文章
Python网络编程02/基于TCP协议的socket简单的通信
毕设作品基于TCP协议的简单即时通信软件的设计与实现(源代码+论文)免费下载