社区
网络编程
帖子详情
关于SOCKET和LPVOID转换
clzzcl
2003-06-20 04:59:03
我最近刚刚学习socket,用如下语句出错
sClinet是SOCKET类型
hThread = CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadId);
C2664 (LPVOID)sClient此参数转换不了
在vc6.0里还可以的
...全文
228
12
打赏
收藏
关于SOCKET和LPVOID转换
我最近刚刚学习socket,用如下语句出错 sClinet是SOCKET类型 hThread = CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadId); C2664 (LPVOID)sClient此参数转换不了 在vc6.0里还可以的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Healer
2003-07-22
打赏
举报
回复
那个三角什么时候可以加啊????
开心:)
clzzcl
2003-06-20
打赏
举报
回复
OK了 楼上的说的对要用 ststic
Healer
2003-06-20
打赏
举报
回复
楼主的意思无非是要把 Socket对象的指针传入工作线程了,
注意:
DWORD WINAPI ClientThread(LPVOID lpData);
要ststic或全局的函数.
注意lpData的显式转化了. 这个没有什么好说的,
(呵呵, 好像实现Socket类啊)
clzzcl
2003-06-20
打赏
举报
回复
现在不是上面出的错,是这句
hThread = CreateThread(NULL,0,ClientThread,(LPVOID)&sClient,0,&dwThreadId);
d:\cldata2\clsockct\FarControl\FarControlServer\mysocket.cpp(70): error C2664: “CreateThread” : 不能将参数 3 从“DWORD (LPVOID)”转换为“LPTHREAD_START_ROUTINE”
我的定义
DWORD WINAPI ClientThread(LPVOID lpParm);
实现
DWORD WINAPI mysocket::ClientThread(LPVOID lpParm)
{
SOCKET sock = *(SOCKET*)lpParm;
char szBuff[DEFAULT_BUFFER];
int ret,
nLeft,
idx;
bool bRecvOnly = false;
while(1)
{
ret = recv(sock,szBuff,DEFAULT_BUFFER,0);
if (ret == 0)
.....................
Coold
2003-06-20
打赏
举报
回复
声明和定义都要加上关键字WINAPI啊
DWORD WINAPI ClientThread(LPVOID lpData)
{
SOCKET pClient = *(SOCKET*)lpData;
...
}
clzzcl
2003-06-20
打赏
举报
回复
不是我的声明是对的就是这样
DWORD WINAPI ClientThread(LPVOID lpData);
应该是vc7.0的原因 vc6.0是可以的
不过我不知道怎样解决
Coold
2003-06-20
打赏
举报
回复
漏看了,糊涂。
在线程函数的声明和定义都要加上关键字WINAPI
DWORD WINAPI ClientThread(LPVOID lpData);
clzzcl
2003-06-20
打赏
举报
回复
不行呀!
//建立一个线程
sClient,0,&dwThreadId);hThread = CreateThread(NULL,0,ClientThread,(LPVOID)&sClient,0,&dwThreadId);
出错
d:\cldata2\clsockct\FarControl\FarControlServer\mysocket.cpp(70): error C2664: “CreateThread” : 不能将参数 3 从“DWORD (LPVOID)”转换为“LPTHREAD_START_ROUTINE”
Coold
2003-06-20
打赏
举报
回复
sClinet是SOCKET类型,必须传指针
hThread = CreateThread(NULL,0,ClientThread,(LPVOID)&sClient,0,&dwThreadId);
DWORD ClientThread(LPVOID lpData)
{
SOCKET pClient = *(SOCKET*)lpData;
...
}
clzzcl
2003-06-20
打赏
举报
回复
不是CSocket对象,代码如下
SOCKET sClient;
sClient = accept(sServer,(struct sockaddr *)&clientaddr,&iAddrSize);
Phourm
2003-06-20
打赏
举报
回复
sClient是一个CSocket对象吧
不能把一个对象转换成VOID指针
hThread = CreateThread(NULL,0,ClientThread,(LPVOID)&sClient,0,&dwThreadId);
DWORD ClientThread(LPVOID lpData)
{
CSocket* pClient = (CSocket*)lpData;
...
}
clzzcl
2003-06-20
打赏
举报
回复
对了我用的是vc7.0
C++服务器与java进行
socket
通信案例
本文介绍了一个C++服务器与Java客户端进行
Socket
通信的案例。主要内容包括如何在Java中还原C++服务器的结构体,数据
转换
方法,以及通信过程中使用字节数组的细节。客户端主要由Client、NetDataTypeTransform、NetDataCommand和ThreadRead四个类构成,实现了与C++服务器的交互。项目源码可在CSDN下载,并提供了实验运行效果。
MFC通过
SOCKET
建立TCP通信(VS2019)
本文通过实例详细讲解了如何在MFC中使用
SOCKET
建立TCP通信,包括服务端的初始化、数据接收,客户端的连接和发送,以及多线程在处理通信中的作用。还展示了简单的效果演示,并探讨了扩展到连接多个客户端的可能性。
Win32
Socket
使用
本文介绍了如何在Win32环境中使用WS2_32.lib库进行网络编程,包括WSAStartup和WSACleanup的基本用法,以及
socket
、bind、listen、accept、send、recv等关键API的详细示例。
在MFC中的
socket
编程
这篇博客详细介绍了如何在MFC环境中利用
Socket
实现服务器和客户端的通信。首先在sFile和cFile两个工程中分别设置对话框及控件,包括编辑框和按钮。接着在服务器端,通过添加相关头文件、库、定义和函数,实现了监听、接受连接、接收和发送数据的功能。客户端则实现了连接服务器、发送和接收数据的功能,还特别处理了回车键发送消息的情况。这是一个基本的TCP/IP通信示例。
网络编程
18,357
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章