C#实现简单的网络通信
来源:互联网 发布:淘宝复刻潮牌店铺排行 编辑:程序博客网 时间:2024/03/29 18:58
需要使用到的命名空间有:
System.Net,System.Net.Sockets,System.Threading
l 服务器端
在服务器端,要单独用一个线程和套接字来监听客户端的连接请求
首先,准备一个要绑定的本地终结点
IPAddress address = null;
IPAddress.TryParse(本地的IP地址, out address);
IPEndPoint ep = new IPEndPoint(address, 要绑定的端口);
然后创建一个用来监听的套接字
Socket socWatcher = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
在创建套接字的三个参数中:
AddressFamily.InterNetword表示此Socket将采用的寻址协议
SocketType.Stream表示此Socket的类型,SocketType.Stream支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。
ProtocolType.Tcp表示此Socket支持的协议为TCP协议
socWatcher.Bind(ep);//将此套接字绑定到指定的终结点
socWatcher.Listen(10);//将此套接字置于侦听状态,并设置最多同时处理的请求数为10
接着,开启一个单独的线程
Thread thrWatcher = new Thread(Watch);
thrWatcher.IsBackground = true;
thrWatcher.Start();
Watch方法用来用来监听来自客户端的请求
此方法中使用一个死循环来不断为请求创建套接字
while(true)
{
Socket socNew = socWatcher.Accept();
//处理socNew的代码
//一般讲socNew存储到一个集合中,并新建立一个线程,利用此套接字与客户端通信
}
Accept 以同步方式从侦听套接字的连接请求队列中提取第一个挂起的连接请求,然后创建并返回新的 Socket。
socNew建立起来后,可以利用此套接字与客户端进行通信
大部分的时候,利用一个新的线程使用socNew监听来自对方的信息。
socNew.Receive(字节数组,起始索引,长度,SocketFlags.None);
此方法将阻塞线程,直到接受完数据为止。
同时也可利用socNew.Send(字节数组, 起始索引, 长度, SocketFlags.None);向对方发送数据。
l 客户端:
客户端必须知道服务器端的IP地址和端口号。
和服务器端类似,首先利用此IP地址和端口号创建一个终结点,然后创建一个套接字。
然后,利用此套接字向服务器端请求建立连接:
SocClient.Connect(ep);
连接建立完毕后,客户端同样可以使用此套接字的Send方法和Receive方法进行通信了。
附上一个简单示例的源代码
- C#实现简单的网络通信
- C#网络编程-简单的通信源码
- Netty实现简单网络通信
- C# 网络编程(1)——C# 简单实现局域网内通信
- 多线程和网络通信实现的简单多线程上传
- 多线程和网络通信实现的简单文件下载
- qt与java实现简单的网络通信
- Python的socket网络编程1 sock简单通信实现
- 使用servlet+jsp实现简单的网络通信
- C# 利用socket实现语音网络通信
- C# 简单的聊天通信
- TCP协议实现网络通信简单例子
- java 网络通信socket实现简单实例
- C#服务器客户端通信简单实现
- C# 简单通信(实现文件传输)
- 用java实现简单的网络通信,相当于一个最简单的控制台qq(附代码)
- 即时通信的简单实现
- socket通信的简单实现
- Fs2410上基于linux触摸屏的移植
- Linux下时间计算
- 使用Android中的网络连接
- C++中声明和定义知识点的梳理
- 重新分配COM口
- C#实现简单的网络通信
- setuid函数
- linux shell 时间运算以及时间差计算方法
- poj3299
- JDBC学习日记之基础知识
- 0709
- 学习笔记(6):C程序设计(第四版)谭浩强著_第九章
- JAVA基础
- サンプルで学ぶjQuery:(X)HTML/CSSを操作する