C#Socket简单例子(服务器与客户端通信).doc
文本预览下载声明
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
显示全部