tcp协议案例

      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();	
	}

}

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

一个关于TCP/IP协议案例是使用C#编写的简单TCP/IP通信小示例。这个示例包括一个服务端和一个客户端,可以帮助新手学习TCP/IP通信的基本原理和实现方式。在这个示例中,服务端使用ServerSocket对象监听客户端连接,然后通过获取客户端Socket对象来进行数据传输。同时,示例还使用了BufferedReader对象来读取客户端传送的数据,并使用PrintWriter对象将服务器端的数据输出到客户端。这个示例可以在VS2013开发环境中运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [TCPView 是一个 Windows 程序,它将显示系统上所有 TCP 和 UDP 终结点的详细列表,包括 tcp 连接](https://download.csdn.net/download/fyq158797/88280042)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [C# TCP/IP通信小例子](https://download.csdn.net/download/yuin_lee/10572507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [TCP/IP协议实例](https://blog.csdn.net/weixin_43148352/article/details/103599630)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值