社区
网络编程
帖子详情
关于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里还可以的
...全文
197
12
打赏
收藏
关于SOCKET和LPVOID转换
我最近刚刚学习socket,用如下语句出错 sClinet是SOCKET类型 hThread = CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadId); C2664 (LPVOID)sClient此参数转换不了 在vc6.0里还可以的
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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++_
Socket
网络编程大全.pdf
Socket
编程的核心是建立通信通道,然后在这个通道上发送和接收数据。 ### 简单服务器的实现 #### 代码解析 ```cpp // 引入必要的头文件 #include #pragmacomment(lib,"WS2_32.lib") WSADATA wsd; static UINT ...
C++_
Socket
网络编程大全
在C++中,可以使用
Socket
API来创建和管理
Socket
连接,实现数据的发送与接收。
Socket
编程通常涉及两个方面:服务器端编程和客户端编程。 ####
Socket
编程步骤 1. **初始化Winsock**:在Windows环境下,必须先调用`...
Ethernet_TCP-IP_
Socket
_MFC Doc
通过服务器端和客户端的具体实现流程,以及 MFC 窗口支持的相关内容,希望能够帮助初学者更好地理解和掌握
Socket
编程的基本原理和技术细节。此外,提供的示例代码可以作为实际项目开发中的参考模板,便于快速搭建...
MFC下C
Socket
编程详解.pdf
unsigned int StartServer(
LP
VOID
lP
aram) { // 初始化 Winsock if (!Afx
Socket
Init()) { AfxMessageBox(IDP_
SOCKET
S_INIT_FAILED); return 1; } m_exit = false; CServerDlg* aDlg = (CServerDlg*)
lP
aram;...
端口扫描VC++程序代码
//将IP地址
转换
为字符串 char *IpChar = inet_ntoa(SockAddr.sin_addr); char str[200]; if(connect(Sock,(SOCKADDR *)&SockAddr;,sizeof(SockAddr))==0) { //连接成功, sprintf(str,"%s : %d 连接成功\n...
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章