Csharp/C#教程:详解C# Socket简单例子(服务器与客户端通信)分享

这个例子只是简单实现了如何使用Socket类实现面向连接的通信。

注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序。在这个例子中,实际上还有很多问题没有解决,如消息边界问题、端口号是否被占用、消息命令的解析问题等。。

下面是两个程序的代码,(两个程序均为控制台程序)

先发服务端的(Server)完整代码如下:

引入命名空间:

usingSystem.Net.Sockets; usingSystemNet; usingSystemThreading;

完整代码如下:

namespaceSocketServer { classProgram { privatestaticbyte[]result=newbyte[1024]; privatestaticintmyProt=8885;//端口 staticSocketserverSocket; staticvoidMain(string[]args) { //服务器IP地址 IPAddressip=IPAddressParse("1"); serverSocket=newSocket(AddressFamilyInterNetwork,SocketTypeStream,ProtocolTypeTcp); serverSocketBind(newIPEndPoint(ip,myProt));//绑定IP地址:端口 serverSocketListen(10);//设定最多10个排队连接请求 ConsoleWriteLine("启动监听{0}成功",serverSocketLocalEndPointToString()); //通过Clientsoket发送数据 ThreadmyThread=newThread(ListenClientConnect); myThreadStart(); ConsoleReadLine(); } ///<summary> ///监听客户端连接 ///</summary> privatestaticvoidListenClientConnect() { while(true) { SocketclientSocket=serverSocketAccept(); clientSocketSend(EncodingASCIIGetBytes("ServerSayHello")); ThreadreceiveThread=newThread(ReceiveMessage); receiveThreadStart(clientSocket); } } ///<summary> ///接收消息 ///</summary> ///<paramname="clientSocket"></param> privatestaticvoidReceiveMessage(objectclientSocket) { SocketmyClientSocket=(Socket)clientSocket; while(true) { try { //通过clientSocket接收数据 intreceiveNumber=myClientSocketReceive(result); ConsoleWriteLine("接收客户端{0}消息{1}",myClientSocketRemoteEndPointToString(),EncodingASCIIGetString(result,0,receiveNumber)); } catch(Exceptionex) { ConsoleWriteLine(exMessage); myClientSocketShutdown(SocketShutdownBoth); myClientSocketClose(); break; } } } } }

上述就是C#学习教程:详解C# Socket简单例子(服务器与客户端通信)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/907600.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐