.Net网络编程——服务端获取客户端连接
程序员文章站
2024-01-22 08:49:46
一,客户端服务端连接图示
其中,在客户端和服务...
一,客户端服务端连接图示
其中,在客户端和服务端的socket中,都报存这连接的信息;客户端通过connect连接,服务端可以调用accepttcpclient来获取链接到服务端的客户端,每一个客户端和服务端的连接都对应这唯一一个socket.
二,服务端获取连接示例
using system; using system.collections.generic; using system.linq; using system.text; using system.net; using system.net.sockets; namespace 获取单一客户端连接 { class program { static void main(string[] args) { #region 获取单一客户端连接 //console.writeline("服务端启动啦啦啦。。"); //ipaddress ip = new ipaddress(new byte[] { 127, 0, 0, 1 }); //tcplistener listener = new tcplistener(ip, 8500); //listener.start(); //console.writeline("服务端开始监听8500。。。。"); ////获取一个连接,中断方法 //tcpclient remoteclient = listener.accepttcpclient();//获取一个与客户端的连接,同时它返回一个tcpclient类型示例,此时它所包装的是由服务端去往客户端的socket(这是一个block method) ////打印连接到客户端的信息 //console.writeline("客户端连接成功。本地:{0}------>客户端{1}", remoteclient.client.localendpoint, remoteclient.client.remoteendpoint); #endregion #region 获取多个客户端的连接 console.writeline("服务端启动啦啦啦。。"); ipaddress ip = new ipaddress(new byte[] { 127, 0, 0, 1 }); tcplistener listener = new tcplistener(ip, 8500); listener.start(); console.writeline("服务端开始监听8500。。。。"); while (true) { /* 将服务端放入一个始终执行的循环中。 */ //获取一个连接,中断方法 tcpclient remoteclient = listener.accepttcpclient();//获取一个与客户端的连接,同时它返回一个tcpclient类型示例,此时它所包装的是由服务端去往客户端的socket(这是一个block method) //打印连接到客户端的信息 console.writeline("客户端连接成功。本地:{0}------>客户端{1}", remoteclient.client.localendpoint, remoteclient.client.remoteendpoint); } #endregion } } }
ps:accepttcpclient是一个同步的方法,对比ajax的异步,可以发现如果服务端获取不到客户端的连接,就会一直阻塞在这里,而不是像ajax请求数据的时候,下面的东西可以继续,成功后回调。
推荐阅读
-
.NET控制台实现signalr客户端连接signalr服务端(web api)
-
Android编程获取网络连接方式及判断手机卡所属运营商的方法
-
Java编程Socket实现多个客户端连接同一个服务端代码
-
ASP.NET简单获取服务端和客户端计算机名称的方法
-
ASP.NET简单获取服务端和客户端计算机名称的方法
-
python网络编程示例(客户端与服务端)
-
Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 (转载)
-
Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 (转载)
-
socket网络编程实现客户端和服务端通信
-
linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)