您的位置:首页 > 理论基础 > 计算机网络

C# 编程 TCP协议 (基本知识点)

2013-06-07 17:26 239 查看
TCP通讯机制是:一对一的传递机制,具体分为客户端和服务器。就好比打电话的方式,客户端(主动打电话的人),服务器(接听电话的人)。

二者的分别作用是:客户端:1主动打电话(也就是试连接) 2数据传送

服务器:1时时刻刻在电话旁边的等电话(侦听) 2 数据传递

功能实现的步骤是这样的:

第一步:连接彼此间的数据传送链

代码说明: 试连接(客户端)

TcpClient client = new TcpClient(_RemoteIp, _RemotePort);//并启动了,和连接作用

或者TcpClient tclient = new TcpClient(); tclient.Connect("192.168.1.100", 8080);

侦听(服务器)

IPAddress ipa = IPAddress.Parse("192.168.1.100");

TcpListener myListener = new TcpListener(ipa, 8080);

myListener.Start();

如果没有侦听,就会出现报错,并且二者一直在连接,连接成功后才会去执行下一步代码

第二步:数据链已经建立好了,就要完成数据的传送 客户端和服务器都有数据发送,接受的功能它们是一一对应使用的,不可能同一客户端即完成传送数据和接受数据的内容,不能去读出缓存中的内容

客户端功能实现:

1.发送:NetworkStream ns = tclient.GetStream();

String content = "要发送的内容";

byte[] data = Encoding.Unicode.GetBytes(content);

ns.Write(data, 0, data.Length);

2.接受:if (tclient.Available > 0)
{
byte[] data = new byte[1024];
ns.Read(data, 0, 1024);
String content = Encoding.Unicode.GetString(data);
}

服务器端的功能实现: Socket mySocket = myListener.AcceptSocket();

1.发送:mySocket.Send(Encoding.Unicode.GetBytes("要发送的内容"));

2.接收:byte[] data = new byte[1024];
if (mySocket.Available > 0)
{
mySocket.Receive(data);
String content = Encoding.Unicode.GetString(data);
}

基本的实现了数据传递的功能了,以下对一些细节说明一下:

1.连接地址通常包括两部分——主机名和端口,如www.yesky.com:80中,www.yesky.com就是主机名,80指主机的80端口;另一种方式是主机名也可以用IP地址代替。

2.在使用结束后,需要把相关类关闭掉,避免下次使用时,出现端口占用报错

3. 对于服务器的侦听,需要建立一个建立一个无限循环来实现侦听的功能

4.数据传递的过程中,需要进行字符串的转换,采用不同的编码形式,同样也存在不同的解码方式,类似于串口的通讯机制
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: