c# socket教程

 时间:2024-10-19 23:44:08

1、服务端的(Server)完整代码引用usingSystem.Net.Sockets;usingSystem.Net;usingSystem.Threading;

2、namespaceSocketServer{classProgram{privatestaticbyte[]result=newbyte[1024];privatest锾攒揉敫aticintmyProt=8885;//端口staticSocketserverSocket;staticvoidMain(string[]args){//服务器IP地址IPAddressip=IPAddress.Parse("127.0.0.1");serverSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);serverSocket.Bind(newIPEndPoint(ip,myProt));//绑定IP地址:端口serverSocket.Listen(10);//设定最多10个排队连接请求Console.WriteLine("启动监听{0}成功",serverSocket.LocalEndPoint.ToString());//通过Clientsoket发送数据ThreadmyThread=newThread(ListenClientConnect);myThread.Start();Console.ReadLine();}///<summary>///监听客户端连接///</summary>privatestaticvoidListenClientConnect(){while(true){SocketclientSocket=serverSocket.Accept();clientSocket.Send(Encoding.ASCII.GetBytes("ServerSayHello"));ThreadreceiveThread=newThread(ReceiveMessage);receiveThread.Start(clientSocket);}}///<summary>///接收消息///</summary>///<paramname="clientSocket"></param>privatestaticvoidReceiveMessage(objectclientSocket){SocketmyClientSocket=(Socket)clientSocket;while(true){try{//通过clientSocket接收数据intreceiveNumber=myClientSocket.Receive(result);Console.WriteLine("接收客户端{0}消息{1}",myClientSocket.RemoteEndPoint.ToString(),Encoding.ASCII.GetString(result,0,receiveNumber));}catch(Exceptionex){Console.WriteLine(ex.Message);myClientSocket.Shutdown(SocketShutdown.Both);myClientSocket.Close();break;}}}}}

3、客户端(Client)的完整代码如下引用usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Threading;

4、namespaceSocket觊皱筠桡Client{classProgram{privatestaticbyte[]result=newbyte缪梨痤刻[1024];staticvoidMain(string[]args){//设定服务器IP地址IPAddressip=IPAddress.Parse("127.0.0.1");SocketclientSocket=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);try{clientSocket.Connect(newIPEndPoint(ip,8885));//配置服务器IP与端口Console.WriteLine("连接服务器成功");}catch{Console.WriteLine("连接服务器失败,请按回车键退出!");return;}//通过clientSocket接收数据intreceiveLength=clientSocket.Receive(result);Console.WriteLine("接收服务器消息:{0}",Encoding.ASCII.GetString(result,0,receiveLength));//通过clientSocket发送数据for(inti=0;i<10;i++){try{Thread.Sleep(1000);//等待1秒钟stringsendMessage="clientsendMessageHellp"+DateTime.Now;clientSocket.Send(Encoding.ASCII.GetBytes(sendMessage));Console.WriteLine("向服务器发送消息:{0}"+sendMessage);}catch{clientSocket.Shutdown(SocketShutdown.Both);clientSocket.Close();break;}}Console.WriteLine("发送完毕,按回车键退出");Console.ReadLine();}}}

5、编译成功后,先运行 服务端(server),再运行客户端(client)即可达到通信效果。

c# socket教程
  • 网狐棋牌框架数据库相关说明
  • jquery实现用a标签提交表单?
  • 如何正确使用tar命令
  • trycatch与finally语句哪个可以不要?
  • jsp RADIO的使用方法
  • 热门搜索
    安全小报手抄报内容 校园安全知识手抄报 百善孝为先手抄报内容 法制小报手抄报 关于道德的手抄报 家长会手抄报 和平手抄报 科技幻想手抄报 廉洁的手抄报 关于桥的手抄报图片