基于 TCP(面向连接)的 socket 编程
例子:一个客户端作 一个服务端
客户端发送数据至服务端 服务端接收完毕后反馈客户端
ps:不同于 UDP 协议 首先需要启动服务端才能够启动服务端 否则抛出 ConnectException 异常
客户端思路
1、创建 socket 对象
2、获取输入流
3、获取 socket 读取流
4、关闭服务
public class TCPClientDemo {
public static void main(String []args) throws UnknownHostException, IOException{
System.out.println("Client start!!");
//1.创建客户端
Socket socket = new Socket("192.168.219.1",10003);
//2.获取输出流
OutputStream out = socket.getOutputStream();
String str = "hello world?";
out.write(str.getBytes());
//3.获取socket的读取流。读取服务端发回的数据
InputStream in = socket.getInputStream();
byte [] buf = new byte[1024];
int len = in.read(buf);
String string = new String(buf,0,len);
System.out.println(string);
socket.close();
}
}
服务端思路:
1、创建 socket 对象
2、获取客户端对象
3、获取读取流(InputStream)
4、反馈
5、关闭服务
public static void main(String []args) throws UnknownHostException, IOException{
System.out.println("Server Start!!");
ServerSocket serverSocket = new ServerSocket(10003);
Socket socket = serverSocket.accept();
//获取客户端地址
String ip = socket.getInetAddress().getHostAddress();
System.out.println(ip+"...connected");
InputStream in = socket.getInputStream();
byte[] buf =new byte[1024];
int len =in.read(buf);
String str =new String(buf,0,len);
System.out.println(str);
//返回数据给客户端
OutputStream out =socket.getOutputStream();
out.write("hello world!!".getBytes());
socket.close();
serverSocket.close();
}
}
结果
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于