服务端
/**
* 基于tcp传输协议(浏览器就是基于http或者https应用协议,tcp传输协议的一个客户端)
* @author Administrator
* 1、创建服务端+端口
* 2.发送数据+接收数据
*/
public class Server {
public static void main(String[] args) {
try {
ServerSocket server =new ServerSocket(8888);//不同协议可以采用相同的端口
Socket socket =server.accept();//等待被动请求建立连接
System.out.println("你请求到了,客户端建立连接");
String str ="这是我模拟的数据";
//1,处理字符串的一种方式BufferedWriter
/*BufferedWriter writer =new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
writer.write(str);//阻塞式的方法,要么加上结束符,要么加上newline
writer.newLine();
writer.flush();//服务器不要关闭*/
//2,处理字符串比较方便的另外一种流的方式DataOutputStream
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF(str);
dos.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端
/**
* 建立客户端连接tcp的连接必须是服务端不能停止
* @author Administrator
*1、建立客户端+地址和端口
*2、接收数据+发送数据
*/
public class Client {
public static void main(String[] args) {
try {
Socket client =new Socket("localhost",8888);//建立连接
//1,处理字符串的一种方式BufferedReader
/*BufferedReader reader =new BufferedReader(new InputStreamReader(client.getInputStream()));
String src =reader.readLine();
System.out.println(src);*/
//2,处理字符串比较方便的另外一种流的方式DataInputStream
DataInputStream dis = new DataInputStream(client.getInputStream());
String src=dis.readUTF();
System.out.println(src);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
基于TCP通信的套接字Socket
最新推荐文章于 2022-04-03 20:02:42 发布