社区
网络编程
帖子详情
关于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里还可以的
...全文
236
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
通信案例
注:本代码版权所有!!!转载时请声明源地址:http://blog.csdn.net/nuptboyzhb/article/details/8047619 你可以学习,分享,修改,教学等。但是不得用于商业目的。目前已经发现互联网上大量与本文完全相同的文章,但是却把作者信息删除的干干净净,并且据为己有,打上某培训机构的广告!实属可恶! 最新消息:项目成品连接:http://blog.csdn.n
MFC通过
SOCKET
建立TCP通信(VS2019)
MFC通过
SOCKET
建立TCP通信(VS2019)前言一、
SOCKET
服务端1.服务器过程说明2.函数实现3.为什么要在线程中处理二、客户端1.客户端过程说明2.读入数据总结 前言 因项目需要构建上位机做服务器,连接多台客户端接收信息,经历过重写CScoket类,最后发现可以直接用
SOCKET
类型实现功能,并借此机会学习到了多线程相关的知识与实现。做一个简单的记录与分享 提示:以下是本篇文章正文内容,下面案例可供参考 一、
SOCKET
服务端 1.服务器过程说明 服务器端先初始化
Socket
,然后与端
在MFC中的
socket
编程
新建两个基于对话框的工程,分别为sFile、cFile。 在s端添加两个Edit:一个显示窗口IDC_EDIT1(点击右键选择Properties->Styles,选中Multiline,Vertical scroll、Read-only三项),一个输入窗口IDC_EDIT2。然后增加一个发送按钮:IDC_BtnSend。 在c端添加三个Edit:一个显示窗口IDC_EDIT1(点击右键选择Properties->Styles,选中Multiline,Vertical scroll、Read-o
Win32
Socket
使用
Win32 进行网络编程需要使用到 ws2_32.lib 库,它是 Windows
Socket
s 2 (Winsock2) 的库文件,其主要头文件为winsock2.h。如果使用 Windows.h 头文件则默认包含 winsock.h,他会和 winsock2.h 冲突。可以通过在包含 Windows.h 之前定义宏 WIN32_LEAN_AND_MEAN 来排除一些不常用的 Windows 头文件,这里面就会排除掉 winsock.h
C++多线程
SOCKET
通信研究日志
C++多线程
SOCKET
通信研究日志 近期在研究C++程序,基本思路:作为服务接受监听4500端口,当存在一个连接时,创建一个新的线程,并在线程中实现数据的接受和发送工作,为了避免因收发造成的阻塞,可以创建2个线程用于收和发送。 思路2:通过选择的模式进行数据匹配发送数据,发一次关一次。暂定思路,以下代码并不完整,仅供本人研究 #include <winsock2.h> #pragma comment(lib,"ws2_32") #include <stdio.h> #inc
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章