admin 管理员组

文章数量: 887021


2023年12月19日发(作者:杨戬怕如来佛祖吗)

CSocket简单例子服务器与客户端通信

Edited on July 1, 2023 at 11am

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

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

注:多个TCP连接或多个进程可能需要通过同一个 TCP协议端口传输数据..为了区别不同的应用程序进程和连接;许多为应用程序与TCP/IP协议交互提供了称为套接字Socket的接口..

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

引入命名空间:

using System;

using ing;

namespace SocketServer

{

class Program

{

private static byte result = new byte1024;

private static int myProt = 8885; //端口

static Socket serverSocket;

static void Mainstring args

{

//服务器IP地址

serverSocket = new

etwork; ;

;

w IPEndPointip; myProt; //绑定IP地址:端口

10; //设定最多10个排队连接请求

;

//通过Clientsoket发送数据

Thread myThread = new ThreadListenClientConnect;

;

ne;

}

///

/// 监听客户端连接

///

private static void ListenClientConnect

{

while true

{

Socket clientSocket = ;

Thread receiveThread = new

ThreadReceiveMessage;

lientSocket;

}

}

///

/// 接收消息

///

///

private static void ReceiveMessageobject clientSocket

{

Socket myClientSocket = SocketclientSocket;

while true

{

try

{

//通过clientSocket接收数据

int receiveNumber =

eresult;

ine"接收客户端{0}消息{1}";

EndPoint.T

}

catchException ex

{

e;

;

;

break;

}

}

}

}

}

以上是服务端server的完整代码..

客户端Client的完整代码如下:

引入命名空间:

using System;

using ing;

namespace SocketClient

{

class Program

{

private static byte result = new byte1024;

static void Mainstring args

{

//设定服务器IP地址

Socket clientSocket = new

etwork; ;

;

try

{

tnew IPEndPointip; 8885;

//配置服务器IP与端口

ine"连接服务器成功";

}

catch

{

ine"连接服务器失败;请按回车键退出";

return;

}

//通过clientSocket接收数据

int receiveLength = eresult;

//通过 clientSocket 发送数据

for int i = 0; i < 10; i++

{

try

{

1000; //等待1秒钟

string sendMessage = "client send Message

Hellp" + ;

ine"向服务器发送消息:{0}"

+ sendMessage;

}

catch

{

;

;

break;

}

}

ine"发送完毕;按回车键退出";

ne;

}

}

}

编译成功后;先运行 服务端server;再运行客户端client即可达到通信效果..


本文标签: 连接 消息 程序 服务器