浅析C#中的套接字编程(3)
2005-01-05 23:45
309 查看
浅析C#中的套接字编程(3) | |
作者: 王凯明 www.ASPCool.com 时间:2002-4-10 21:19:37 | |
private void ServiceClient() { Socket client = clientsocket; bool keepalive = true; while (keepalive) { Byte[] buffer = new Byte[1024]; client.Receive(buffer); string clientcommand = System.Text.Encoding.ASCII.GetString(buffer); string[] tokens = clientcommand.Split(new Char[]{'|'}); Console.WriteLine(clientcommand); if (tokens[0] == "CONN") { for(int n=0; n { Client cl = (Client)clients ; SendToClient(cl, "JOIN|" + tokens[1]); } EndPoint ep = client.RemoteEndPoint; Client c = new Client(tokens[1], ep, clientservice, client); clients.Add(c); string message = "LIST|" + GetChatterList() +"/r/n"; SendToClient(c, message); lbClients.Items.Add(c); } if (tokens[0] == "CHAT") { for(int n=0; n { Client cl = (Client)clients ; SendToClient(cl, clientcommand); } } if (tokens[0] == "PRIV") { string destclient = tokens[3]; for(int n=0; n { Client cl = (Client)clients ; if(cl.Name.CompareTo(tokens[3]) == 0) SendToClient(cl, clientcommand); if(cl.Name.CompareTo(tokens[1]) == 0) SendToClient(cl, clientcommand); } } if (tokens[0] == "GONE") { int remove = 0; bool found = false; int c = clients.Count; for(int n=0; n { Client cl = (Client)clients ; SendToClient(cl, clientcommand); if(cl.Name.CompareTo(tokens[1]) == 0) { remove = n; found = true; lbClients.Items.Remove(cl); } } if(found) clients.RemoveAt(remove); client.Close(); keepalive = false; } } } 这样,服务器端程序就基本完成了。(其他略次要的代码可以参见源代码中的Form1.cs文件)程序运行图示如下: |
相关文章推荐
- 浅析C#中的套接字编程(5)
- 浅析C#中的套接字编程
- 浅析C#中的套接字编程
- 浅析C#中的套接字编程(1)
- 浅析C#中图形编程
- 入门级:怎么使用C#进行套接字编程(一)
- C# 2.0 套接字编程实例初探
- C#2.0 Socket套接字编程之实例初探
- C# 2.0 套接字编程实例初探
- 浅析C#编程中的内存管理
- C#套接字编程实现客户端和服务器通信以及传输文件
- 浅析C#中图形编程
- C#2.0 Socket套接字编程之实例初探
- C#2.0 Socket套接字编程之实例初探
- TCP应用编程--套接字C#实现
- C#网络编程服务器端程序实现源码浅析
- C#2.0 Socket套接字编程之实例初探
- C#2.0 Socket套接字编程之实例初探
- .net Socket编程(二)C#2.0 Socket套接字编程之实例初探
- (转)浅析C#编程中的内存管理