TCP在双方传输数据前,发送方先请求建立连接,接收方同意建立连接后才能传输数据。(打电话:先拨号,等对方同意接听后,才能交流)。。。高可靠性
UDP不需要建立连接(发短信)。不可靠,可能出现数据丢失等,但效率高,实时性高。
————————————————————————————————————————————————————————————————————————————
服务器端:
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;public class ServerSocketTest {public static void main(String[] args) throws IOException {// 新建一个服务器端的套接字 Server端监听10000端口ServerSocket serverSocket = new ServerSocket(10000);// 建立连接,此时进入阻塞状态Socket socket = serverSocket.accept();System.out.println("Connected: " + socket.getRemoteSocketAddress());// socket从客户端读取数据InputStream inputStream = socket.getInputStream();byte[] b = new byte[1024];int length = inputStream.read(b);System.out.println(length + " Bytes Received");}}
客户端代码:
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;public class ClientSocketTest {public static void main(String[] args) throws IOException {//新建一个客户端的套接字
Socket socket = new Socket("127.0.0.1", 10000);// 用socket往服务器端发送数据
OutputStream outputStream = socket.getOutputStream();byte[] b = new byte[2];outputStream.write(b);}}
运行结果:
Connected: /127.0.0.1:60361
2 Bytes Received