文档详情

C#Socket简单例子(服务器与客户端通信).doc

发布:2017-06-09约4.56千字共5页下载文档
文本预览下载声明
C# Socket简单例子(服务器与客户端通信) 分类: C#.NET2011-07-24 15:55 23710人阅读 评论(18) 收藏 举报 socket服务器c#threadserverbyte 这个例子只是简单实现了如何使用 Socket 类实现面向连接的通信。 注意:此例子的目的只是为了说明用套接字写程序的大概思路,而不是实际项目中的使用程序。在这个例子中,实际上还有很多问题没有解决,如消息边界问题、端口号是否被占用、消息命令的解析问题等。。 下面是两个程序的代码,(两个程序均为控制台程序) 先发服务端的(Server)完整代码如下: 引入命名空间: [csharp] view plaincopyprint? using System.Net.Sockets; using System.Net; using System.Threading; 完整代码如下: [csharp] view plaincopyprint? namespace SocketServer { class Program { private static byte[] result = new byte[1024]; private static int myProt = 8885; //端口 static Socket serverSocket; static void Main(string[] args) { //服务器IP地址 IPAddress ip = IPAddress.Parse(127.0.0.1); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(new IPEndPoint(ip, myProt)); //绑定IP地址:端口 serverSocket.Listen(10); //设定最多10个排队连接请求 Console.WriteLine(启动监听{0}成功, serverSocket.LocalEndPoint.ToString()); //通过Clientsoket发送数据 Thread myThread = new Thread(ListenClientConnect); myThread.Start(); Console.ReadLine(); } /// summary /// 监听客户端连接 /// /summary private static void ListenClientConnect() { while (true) { Socket clientSocket = serverSocket.Accept(); clientSocket.Send(Encoding.ASCII.GetBytes(Server Say Hello)); Thread receiveThread = new Thread(ReceiveMessage); receiveThread.Start(clientSocket); } } /// summary /// 接收消息 /// /summary /// param name=clientSocket/param private static void ReceiveMessage(object clientSocket) { Socket myClientSocket = (Socket)clientSocket; whil
显示全部
相似文档