苦恼我很长时间的问题,UDP

dingbing122 2003-05-05 06:12:43
以下程序为何收数据有时收不到,或有时收到的字节数不对,哪位高手给予菜鸟指点?
void __fastcall TForm1::Button1Click(TObject *Sender)
{

WSADATA WSAData;
BOOL optval=TRUE;

sockport=1601;
int iErrorCode = WSAStartup(MAKEWORD(2,1),&WSAData);

sockfd=socket(AF_INET,SOCK_DGRAM,0);// WSASocket

if(sockfd==INVALID_SOCKET){
sprintf(szTmp,"Client creating socket fail! Error No.is%d",WSAGetLastError());
MessageBox(NULL,szTmp,"Warning",MB_ICONEXCLAMATION);
closesocket(sockfd);
exit(EXIT_FAILURE);
}

setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,(char FAR*)&optval,sizeof(optval));
int hh=89;

server.sin_family=AF_INET;
server.sin_addr.s_addr=INADDR_ANY;
server.sin_port=htons((unsigned short)sockport);

iErrorCode = bind (sockfd, (struct sockaddr FAR *)&server, sizeof(struct sockaddr));


if( WSAAsyncSelect(sockfd,hwnd1,UM_SOCK,FD_READ|FD_CLOSE)==SOCKET_ERROR) //
{

sprintf(szTmp,"AsyncSelecting error! Error No.is%d",WSAGetLastError());
MessageBox(NULL,szTmp,"Warning",MB_ICONEXCLAMATION);

}


hwnd1= FindWindow("TForm1","广播接收平台");
int MsgResult = SendMessage(hwnd1, UM_SOCK, 0, 0); // hwnd this->Handle

// int MsgResult1 = SendMessage(this->Handle, UM_SOCK, 0, 0); // hwnd this->Handle


}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnRecv(TMessage &Msg)
{


int length,namelen;

char ztf[39000],wg[80];
Finished=FALSE;

namelen=sizeof(SOCKADDR);

if((length=recvfrom(sockfd,ztf,30000,0,(struct sockaddr FAR*)&server,(int FAR*)&namelen))==SOCKET_ERROR)
{
if(WSAGetLastError()!=WSAEWOULDBLOCK)
{
sprintf(wg,"Send data failure!Error No. is%d",WSAGetLastError());
MessageBox(NULL,szTmp,"Warning",MB_ICONEXCLAMATION);
closesocket(sockfd);

}

...全文
45 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingbing122 2003-05-17
  • 打赏
  • 举报
回复
已经解决,谢谢
NowCan 2003-05-06
  • 打赏
  • 举报
回复
24k/s??
shadowstar 2003-05-05
  • 打赏
  • 举报
回复
UDP是无连接的,有可能数据会丢失,你有没有用TCP试过?
dingbing122 2003-05-05
  • 打赏
  • 举报
回复
因为数据源是UDP的,而且每0.5秒发24K字节的数据

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧