社区
ATL
帖子详情
SOCKET 收到数据后如何处理???
sforiz
2008-12-31 10:53:45
从客户端发送X,Y,Z坐标信息到服务器,服务器在收到这些数据之后把它传给其它客户端,其它客户端怎样获取这些坐标数据呢,也就是怎样解析或翻译这些数据。
我在做一个小的游戏实例,但在服务器把数据传给客户端之后,不知道怎么处理、解析。
...全文
212
11
打赏
收藏
SOCKET 收到数据后如何处理???
从客户端发送X,Y,Z坐标信息到服务器,服务器在收到这些数据之后把它传给其它客户端,其它客户端怎样获取这些坐标数据呢,也就是怎样解析或翻译这些数据。 我在做一个小的游戏实例,但在服务器把数据传给客户端之后,不知道怎么处理、解析。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sforiz
2009-01-07
打赏
举报
回复
[Quote=引用 7 楼 rick29 的回复:]
如果对性能要求不高,可以考虑直接用CSocket类,并配以一个可以序列化的类(该类中包含了你的X、Y、Z成员)来实现。
这样的好处是,你想把你的类发送到SOCKET,就向CSocket去序列化;你想把你的类存到文件,就向CFile去序列化。总之,有了序列化,想往哪里存都OK。
[/Quote]
性能无所谓
rick29
2009-01-07
打赏
举报
回复
如果对性能要求不高,可以考虑直接用CSocket类,并配以一个可以序列化的类(该类中包含了你的X、Y、Z成员)来实现。
这样的好处是,你想把你的类发送到SOCKET,就向CSocket去序列化;你想把你的类存到文件,就向CFile去序列化。总之,有了序列化,想往哪里存都OK。
sforiz
2009-01-07
打赏
举报
回复
我做的是将游戏中小动物移动时产生的坐标信息,传到一个服务器,服务器把数据传回,在客户端调用函数使小动物移动。通信用的是TCP、SOCKET,程序语言C++,对等的C/S结构。知道的说一下,先谢谢了,如果问题在今天内解决可以加50分。
sforiz
2009-01-07
打赏
举报
回复
[Quote=引用 10 楼 weichaichang 的回复:]
我在下载区上传过这样的程序,去下载区看看吧。你不需要做具体的解析工作。只是需要关注数据的发送和接收问题。接收的时候,如果简单的话,就在线程里处理一下数据,正规的话,就用消息响应,在消息响应函数里处理。
[/Quote]
能发一下你上传的资源的链接吗?
weichaichang
2009-01-07
打赏
举报
回复
我在下载区上传过这样的程序,去下载区看看吧。你不需要做具体的解析工作。只是需要关注数据的发送和接收问题。接收的时候,如果简单的话,就在线程里处理一下数据,正规的话,就用消息响应,在消息响应函数里处理。
sforiz
2009-01-04
打赏
举报
回复
void InitKeyboard(HINSTANCE hInstance){//初始键盘设备、、、
DirectInput8Create(hInstance,DIRECTINPUT_VERSION,IID_IDirectInput8,(LPVOID*)&g_pInput,NULL);
g_pInput->CreateDevice(GUID_SysKeyboard,&g_pInputDevice,NULL);
g_pInputDevice->SetDataFormat(&c_dfDIKeyboard);
g_pInputDevice->SetCooperativeLevel(hWnd,DISCL_NONEXCLUSIVE|DISCL_FOREGROUND|DISCL_NOWINKEY);
g_pInputDevice->Acquire();
}
int ReadKeyboard()//获取按键
{
int key=0;
g_pInputDevice->GetDeviceState(sizeof(g_state),g_state);
if(0x80&g_state[DIK_RIGHT])
key=4;
if(0x80&g_state[DIK_LEFT])
key=3;
if(0x80&g_state[DIK_UP])
key=1;
if(0x80&g_state[DIK_DOWN])
key=2;
return key;
}
.......
switch (ReadKeyboard()){
case 3:{x--;break;}
case 4:{x++;break;}
case 1:{z--;break;}
case 2:{z++;break;}
}
用TCP通信怎样获取其中按的键,
#include "stdafx.h"
#include "winsock.h"
WSADATA wsaData; // 初始化WSA时使用
SOCKET s; // socket
SOCKADDR_IN ServerAddr; // 服务器地址
int Port=9000; // 服务器端口
int _tmain(int argc, _TCHAR* argv[])
{
WSAStartup(MAKEWORD(2,2),&wsaData) ; //启动winsock的库;
s=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP) ; //初始化socket
ServerAddr.sin_family=AF_INET;
ServerAddr.sin_port=htons(Port);
ServerAddr.sin_addr.s_addr=inet_addr("127.0.0.1");
connect(s,(SOCKADDR*)&ServerAddr,sizeof(ServerAddr));
send(s,"From a client",13,0);
while(1){
char buf[256];
memset(buf,0,sizeof(buf));
scanf("%s",buf);
send(s,buf,sizeof(buf),0);
memset(buf,0,sizeof(buf));
recv(s,buf,sizeof(buf),0);
printf("%s\n",buf);
}
closesocket(s);//关闭socket,关闭WSA
return 0;
}
sforiz
2009-01-04
打赏
举报
回复
[Quote=引用 3 楼 oyljerry 的回复:]
客户端和服务端需要有一个统一的协议来定义这个结构,双方都知道怎么解析和拼接
[/Quote]
TCP
zaodt
2009-01-01
打赏
举报
回复
这个就是你自己定义的【协议】。
x y z 三个坐标,假如使用 int 变量来存储的话,那么就是 12 个字节;
就像 1 楼说的,把它们定义为一个结构体,然后发送;
收到后,然后按顺序一个个取出来即可。
你自己试着写写看,遇到具体问题再来问。
yang_fujiang
2009-01-01
打赏
举报
回复
LZ
LS的诸位仁兄都已经讲得很清楚了呢
如果你对OSI通讯协议层了解一点儿的话
其实都是定义好数据机构进行组包 解包的
oyljerry
2009-01-01
打赏
举报
回复
客户端和服务端需要有一个统一的协议来定义这个结构,双方都知道怎么解析和拼接
wiowei
2008-12-31
打赏
举报
回复
怎么发的就怎么收呀?用了结构体?
typedef struct pos
{
int x;
int y;
int z;
} point;
point p[100];
char buff[1000];
//比如每次发10个
int len = sizeof(point)*10;
memcpy(buff,p,len);
serversocket.Send(buff,len);
...
//接收
clientsocket.Receive(buff,len);
memcpy(p,buff,len);
Socket
详解
“一切皆
Socket
!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的
socket
。 ——有感于实际编程和开源项目研究。 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时...
C# 中
Socket
通讯接收
数据
不完整
处理
c# 中
Socket
通讯接收
数据
不完整
处理
最近在做一款粮情检测软件,遇到一个问题,就是硬件测温板子发过来的
数据
分包发送过来,这边接收不完整,在网上查找资料,大致都是判断剩下的有效
数据
是否还有,有的话继续...
close
socket
干了什么?
socket
编程过程中往往会遇到这样那样的问题,出现了这些问题,有的是由于并发访问量太大造成的,有些却是由于代码中编程不慎造成的。比如说,最常见的错误就是程序中报打开的文件数过多这个错误。
socket
建立连接的...
socket
效率到底如何
若server尽量快向client写
数据
,client
收到
数据
后就丢弃,是否能占满千兆带宽? 测试发现和每次发送的包大小有关系,TCP包为1000bits(125字节)以上就能占满带宽: 因此,若client足够多而且都在请求
数据
,...
Java用
Socket
解析字节流
数据
Java用
Socket
解析字节流
数据
背景问题与解决1.
Socket
连接与
数据
读取方式的选择2. 内部
数据
协议的顶层解析过程3. 字节
数据
解析成Java
数据
类型的问题 背景 因业务需求,需要完成一个TCP连接
数据
的解析与转发的插件。 ...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章