-
java支持TCP和UDP通信协议的实现类
-
利用套接字(Socket)开发网络应用程序
-
通信的两端都要有Socket,是两台机器之间的端点
-
网络通信其实就是Socket之间的通信
-
Socket允许程序把网络连接当成一个流,数据在两个Socket之间以IO传输
使用TCP编程的主要步骤如下:
1.客户端Socket的工作过程
①创建Socket
②连接到Socket的输入/输出
③按照一定的协议对Socket进行读/写操作
④关闭Socket
-
客户端
package javanetwork.day1; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; public class Client { /* 创建客户端 */ public static void main(String[] args) throws IOException { //创建客户端Socket,创建时3次握手建立,连接 Socket socket = new Socket("192.168.43.149",9999); /* 这里需要抛出一个IOException */ //客户端向服务器发送信息 OutputStream out = socket.getOutputStream(); out.write("你好服务器".getBytes("utf-8")); //接收服务器端发送的信息 InputStream in = socket.getInputStream(); byte[] bytes = new byte[100]; int len = in.read(bytes); System.out.println(new String(bytes,0,len,"utf-8")); } }
2.服务器端的程序的工作过程
①调用ServerSocket();
②调用accept();
③调用该Socket对象的getOutputStream()和getInputStream()
④关闭ServerSocket和Socket对象
-
Server端
package javanetwork.day1; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class Server { /* 创建服务器端 */ public static void main(String[] args) throws IOException { //建立服务 ServerSocket serverSocket = new ServerSocket(9999); System.out.println("服务器启动了!"); //监听有没有客户端尝试连接服务器 Socket socket = serverSocket.accept(); System.out.println("客户端连接成功!"); //接收客户端发送的信息 InputStream in = socket.getInputStream(); OutputStream out = socket.getOutputStream(); byte[] bytes = new byte[100]; int len = in.read(bytes); //byte转为字符串 String s = new String(bytes,0,len,"utf-8"); System.out.println(s); //从服务器端向客户端发送信息 out.write("你好客户端".getBytes("utf-8")); } }