使用MFC Socket 发送结构体消息

我是在原博主的代码上修改而来,增加宽字符。

原博主地址:

http://blog.csdn.net/yejiansnake/archive/2008/03/13/2175778.aspx

 

 

 

 

学习MFC还没有运用过CSocket,所以照着学了一下。

再把一些东西整理了一下,让程序支持宽字符传输。

 

下面是客户端的主要代码:

下面是服务器主要代码:

工程在:

http://download.csdn.net/source/2988928

 

续:

感觉这样传送消息不是很舒服,因为可能会出现复杂的通信,光传送文本显然不是很合适。我就试着传输结构体类型的数据过去,最初我使用了CString作为结构体的文本内容容器,一直无法实现,看了很多相关内容的讲解,我想应该是CString本身就包含了很多变长信息导致每次都失败。最后使用了下面的方法测试成功,下次再进行更全面的补充。

首先结构体声明如下:

 

发送端这样修改代码:

服务端这样修改代码:

大致就实现了。

不足之处望见谅。

MFC中,使用Socket进行网络编程时,可以使用`bind`函数将一个套接字与本地IP地址和端口绑定在一起。`bind`函数用于服务器端,用来指定服务器要监听的IP地址和端口号。 以下是`bind`函数的使用方法: ```cpp BOOL bind( const SOCKADDR* lpSockAddr, // 指向一个SOCKADDR结构体,包含要绑定的IP地址和端口号信息 int nSockAddrLen // SOCKADDR结构体的长度 ); ``` 其中,`lpSockAddr`参数是一个指向`SOCKADDR`结构体的指针,该结构体包含了要绑定的IP地址和端口号信息。可以使用`CSocket::Create()`函数创建一个套接字对象后,再通过`GetSockName()`函数获取本地IP地址和端口号,并将其填充到`SOCKADDR`结构体中。 以下是一个简单的示例代码,演示了如何在MFC使用`bind`函数进行绑定: ```cpp // 创建服务器套接字 CSocket serverSocket; serverSocket.Create(); // 获取本地IP地址和端口号 sockaddr_in serverAddress; int serverAddressLength = sizeof(serverAddress); serverSocket.GetSockName((sockaddr*)&serverAddress, &serverAddressLength); // 设置服务器地址和端口号 serverAddress.sin_port = htons(12345); // 设置要监听的端口号 // 绑定套接字 if (serverSocket.Bind((sockaddr*)&serverAddress, sizeof(serverAddress)) == FALSE) { // 绑定失败处理... } // 监听连接请求 serverSocket.Listen(); ``` 请注意,上述代码只是一个简单示例,实际使用时可能需要进行错误处理和更全面的逻辑。同时,还需要注意在绑定之前,确保套接字已经被创建成功,并且设置了正确的地址族(AF_INET或者AF_INET6)和套接字类型(SOCK_STREAM或者SOCK_DGRAM)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值