资源简介
基于c++的udp传输,传送超过10M的文件。完成服务端和客户端之间的传输

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#pragma comment(lib“ws2_32.lib“)
/*
HANDLE hrhlhbusy;
struct thrpar
{
SOCKET s;
};
struct recpar
{
SOCKET srec;
struct sockaddr_in addr;
};
UINT recthread(LPVOID pp)
{
SOCKET srecs2;
struct recpar *prec=(struct recpar *)pp;
sockaddr_in recaddr;
srec=prec->srec;
recaddr=prec->addr;
char buf[256];
DWORD ret;
printf(“recv thread start!“);
ret=recv(srecbuf2560);
if(ret==0)
{
printf(“connect close!“);
closesocket(srec);
return 0;
}
else if(ret==SOCKET_ERROR)
{
printf(“connect error!“);
closesocket(srec);
return 0;
}
printf(“recv data:%s“buf);
return 0;
}
DWORD WINAPI listhread(LPVOID pp)
{
::MessageBox(NULL“enter the listhread““KK“MB_OK);
struct thrpar *pthr=(struct thrpar*)pp;
SOCKET slsaccept;
sockaddr_in here there;
char name[256];
struct hostent *phost;
int ret;
gethostname(name256);
phost=gethostbyname(name);
here.sin_family=AF_INET;
here.sin_port=htons(1024);
here.sin_addr.S_un.S_un_b.s_b1=phost->h_addr_list[0][0];
here.sin_addr.S_un.S_un_b.s_b2=phost->h_addr_list[0][1];
here.sin_addr.S_un.S_un_b.s_b3=phost->h_addr_list[0][2];
here.sin_addr.S_un.S_un_b.s_b4=phost->h_addr_list[0][3];
sl=pthr->s;
ret=bind(sl(struct sockaddr *)&heresizeof(here));
if(ret!=0)
{
printf(“bind error“);
return 0;
}
ret=listen(sl5);
if(ret!=0)
{
printf(“listen error“);
return 0;
}
while(true)
{
int nlen=sizeof(there);
saccept=accept(sl(struct sockaddr *)&there&nlen);
if(saccept==INVALID_SOCKET)
{
printf(“accept socket invalid“);
}
DWORD wret=WaitForSingleobject(hbusy500);
if(wret==WAIT_TIMEOUT)
{
send(saccept“\0“10);
closesocket(saccept);
continue ;
}
DWORD recid;
struct recpar *prec;
prec->addr=there;
prec->srec=saccept;
hr=CreateThread(NULL0(LPTHREAD_START_ROUTINE)&listhreadprec0&recid);
return 1;
}
return 1;
}
void main(void)
{
SOCKET s;
sockaddr_in addrin;
WSADATA wsdata;
BOOL bsocket;
char *smsg=“this is a test“;
WSAStartup(0x0202&wsdata);
s=WSASocket(AF_INETSOCK_STREAM0NULL0WSA_FLAG_OVERLAPPED);
hbusy=CreateSemaphore(NULL02NULL);
struct thrpar *psc;
psc=new struct thrpar;
DWORD lisid;
psc->s=s;
hr=CreateThread(NULL0listhreadpsc0&lisid);
DWORD ret=WaitForSingleobject(hr10000);
if(ret==WAIT_object_0)printf(“thread time out%d\r\n“lisid);
}*/
void main(void)
{
SOCKET s;
sockaddr_in froma;
WSADATA wsdata;
BOOL optval;
//启动SOCKET库,版本为2.0
WSAStartup(0x0202&wsdata);
optval=TRUE;
//然后赋值给两个地址,一个
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2003-09-30 15:04 recv
文件 41984 2003-10-05 21:12 recv\recv.ncb
文件 1147 2003-10-05 21:10 recv\recv.plg
文件 3377 2003-10-05 20:05 recv\recv.dsp
文件 533 2003-10-05 20:12 recv\recv.dsw
文件 3738 2003-10-05 21:08 recv\recv.cpp
文件 48640 2003-10-05 21:12 recv\recv.opt
目录 0 2003-09-30 15:04 send
文件 3377 2003-10-05 19:57 send\send.dsp
文件 41984 2003-10-05 21:12 send\send.ncb
文件 1308 2003-10-05 21:10 send\send.plg
文件 533 2003-10-05 20:12 send\send.dsw
文件 932 2003-10-05 21:10 send\send.cpp
文件 48640 2003-10-05 21:12 send\send.opt
----------- --------- ---------- ----- ----
196193 14
- 上一篇:CBCGPGridCtrl对使用
- 下一篇:C语言大作业 西北工业大学
相关资源
- libnet发送udp和tcp包
- MFC UDP编程
- 使用socket套接字发送udp数据包
- C语言实现TCP/IP协议通信和UDP协议通信
- c语言+UDP+DES加密+socket编程
- 基于udp的socket编程
- RakNet 基于UDP网络传输协议的C++网络库
- 基于UDP的简单可视化界面聊天程序c
- 基于VC++6.0的UDP通讯
- 自己编写的C++基于socket编程的UDP聊天
- VC++UDP网络聊天程序
- C语言写的UDP文件传输
- 基于UDP协议的聊天程序 MFC环境下的
- MFC UDP 聊天
- 基于VC++的UDP文件传输系统
- C++基于UDP的控制台局域网聊天程序
- 基于UDP的通信程序设计
- 网络调试助手---开发环境:VC++6.0 基于
- 基于MFC的UDP通信实现
- MFC中利用CSocket实现UDP通信
- MFC实现UDP网络编程
- UDP简单文件传输
- 基于MFC对话框的UDP客户端服务器端程
- 用MFC开发的UDP接收和发送软件
- 完成端口IOCP+UDP源码
- 基于UDP协议的简单聊天系统设计与实
- c语言简易飞秋
- c++(socket)音频传输
- UDP打洞有心跳包和断网自动连接功能
- MFC窗口打开ppt,可通过UDP控制。
评论
共有 条评论