| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:[求助]基本图形的传输,请在线还是不在线的您快点HELP ME
只看楼主 加入收藏
fuhuaxiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-29
收藏
 问题点数:0 回复次数:4 
[求助]基本图形的传输,请在线还是不在线的您快点HELP ME
请问您一下,在服务器上画一个图形(如简单的点,线,圆),实时的传输到客户端.怎样传输?其中点,线,圆的存储结构为结构体
如线的定义:
struct Line{
int start_x,
int start_y,
int end_x,
int end_y
...
}
我是VC初学者,您能不能把关键代码回复一下.谢谢!

[此贴子已经被作者于2006-3-29 14:25:08编辑过]

搜索更多相关主题的帖子: 图形 HELP 传输 在线 
2006-03-29 14:10
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 

使用网络信息包的传输方式向客户端发送一个信息包,在客户端进行解析然后重绘


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-29 14:34
fuhuaxiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-29
收藏
得分:0 

很感谢你的回复,可我不知道怎么做呀,我以前是把它强制转换成字符型如:buffer=(char *)line然后再传送,可是不行,所以想请教你一下,能不能把关键代码告诉我一下!

2006-03-29 14:43
名人
Rank: 1
等 级:新手上路
威 望:1
帖 子:205
专家分:0
注 册:2006-3-3
收藏
得分:0 

//使用Socket的程序在使用Socket之前必须调用WSAStartup函数
int WSAStartup(
WORD wVersionRequested,
LPWSADATA lpWSAData
);

//应用程序在完成对请求的Socket库的使用后,要调用WSACleanup函数来解除与Socket库的绑定并且释放Socket库所占用的系统资源。
int WSACleanup (void);

//应用程序调用socket函数来创建一个能够进行网络通信的套接字
SOCKET socket(
int af,
int type,
int protocol
);

//当创建了一个Socket以后,套接字数据结构中有一个默认的IP地址和默认的端口号
int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);

//closesocket函数用来关闭一个描述符为s套接字
int closesocket(
SOCKET s
);

//不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据
int send(
SOCKET s,
const char FAR *buf,
int len,
int flags
);

//不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据
int recv(
SOCKET s,
char FAR *buf,
int len,
int flags
);

*******因为时间有限以下只是个参考不是实际代码*******
#pragma pack(1)
struct Line{
int start_x;
int start_y;
int end_x;
int end_y;
//...
};

struct sockaddr_in sockAddr;
unsigned short Port = 1010;
int iRet = 0;
int iSocketId;
Line struLine;

bool bBroadcast = true;
iSocketId = 2222;

socket(AF_INET, SOCK_DGRAM, 0);

iSetSockRet = setsockopt(iSocketId,
SOL_SOCKET,
SO_BROADCAST,
(char *)&bBroadcast,
sizeof(BOOL));

sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons((unsigned short)Port);
sockAddr.sin_addr.s_addr = INADDR_ANY;

hRet = bind(iSocketId, (struct sockaddr *)&sockAddr, sizeof(struct sockaddr));

memset(&sockAddr, sizeof(struct sockaddr_in), sizeof(struct sockaddr_in));
sockAddr.sin_family = AF_INET;
sockAddr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
sockAddr.sin_port = htons(Port);

struLine.end_x = 1;
struLine.end_y = 2;
struLine.start_x = 3;
struLine.start_y = 4;

iRet = sendto(iSocketId,
(char *)&struLine,
sizeof(struLine),
0,
(struct sockaddr *)&sockAddr,
sizeof(sockAddr));

if (iRet < 0) {
cerr<<"Error";
}
sockclose(iSocketId);

[此贴子已经被作者于2006-3-29 20:05:14编辑过]


未必钱多乐便多,财多累己招烦恼。 清贫乐道真自在,无牵无挂乐逍遥。
2006-03-29 19:49
fuhuaxiao
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2006-3-29
收藏
得分:0 
感谢您
真谢谢您在百忙之中,回复了我的疑问.因为学得较浅.我试试看能不能实现!
2006-03-30 10:01
快速回复:[求助]基本图形的传输,请在线还是不在线的您快点HELP ME
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027213 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved