tcp协议案例

来源:互联网 发布:matlab和python 编辑:程序博客网 时间:2024/06/02 06:31

      tcp协议理解

      需要建立客户端(Socket)和服务器端(ServerSockt)。建立连接后,通过socket中io流进行数据传输。

     

package com.neutron.network.tcp.demo;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;/** * tcp协议的客户端 * @author zhanght * */public class Client {/** * tcp分为客户端和服务器端[udp分为发送端和接收端] * tcp客户端对应的对象是Socket,服务器端对应对象是ServerSocket对象 * [udp发送端和劫手段都是DatagramSocket对象] *  * 通过查询客户端Socket对象,该对象建立的时候就可以连接特定主机[udp发送端需要在send时候指定接收端] * 因为tcp是面向连接的,在建立socket服务时,就要有客户端存在,并且连接成功。只有在形成通路后,才能在该通道进行数据传输。 *  * 使用步骤: * 1.创建Socket服务,指定主机名称和端口 * 2.获取输出流,然后从输出流中发送数据到服务器端 * 3.获取数据流,然后从输入流中获取服务器端发送回来的数据 */public static void main(String[] args) throws UnknownHostException, IOException {// 创建Socket服务,指定主机名称和端口@SuppressWarnings("resource")Socket client = new Socket("127.0.0.1", 10003);// 发送数据,获取输出流OutputStream out = client.getOutputStream();// 准备发送的数据byte[] datas = "tcp client hello world!".getBytes();// 发送数据out.write(datas);//为何不关闭客户端,因为在服务器端将客户端关闭}}

package com.neutron.network.tcp.demo;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;/** * tcp服务器端 * @author zhanght * */public class Server {/** * 1.建立服务端的服务,ServerSocket,服务端服务绑定端口 * 2.获取连接过来的客户端对象 * 3.使用客户端对象获取读取流来读取数据 * 4.关闭客户端(看情况) * 5.tcp协议中必须首先启动服务器端服务 */public static void main(String[] args) throws IOException {// 建立服务端的服务,ServerSocket,服务端服务绑定端口@SuppressWarnings("resource")ServerSocket server = new ServerSocket(10003);// 获取连接过来的客户端,使用ServerSocket的accept方法,没有连接就会等待,阻塞式方法Socket client = server.accept();// 获取客户端对象的读取流InputStream in = client.getInputStream();// 存取数据的变量byte[] datas = new byte[1024];// 存读取的数据,并获取数据长度int len = in.read(datas);// 构建获取的数据String message = new String(datas, 0, len);System.out.println("client message:" + message);System.out.println("client hostname:" + client.getInetAddress().getHostAddress());System.out.println("client port:" + client.getPort());//关闭客户端client.close();}}

     注意事项:必须首先开启服务器端服务,然后开启客户端服务

0 0
原创粉丝点击