关于137端口

nanfeng231 2004-09-07 07:41:01
WSAStartup(MAKEWORD(1,1),&wsaData);

SOCKET m_UDPSocket = socket(AF_INET,SOCK_DGRAM,0);

sockaddr_in sev;
sev.sin_family = AF_INET;
sev.sin_port = 137;

sev.sin_addr.S_un.S_un_b.s_b1 = 127;
sev.sin_addr.S_un.S_un_b.s_b2 = 0;
sev.sin_addr.S_un.S_un_b.s_b3 = 0;
sev.sin_addr.S_un.S_un_b.s_b4 = 1;

sev.sin_zero[0]=htons(0);;

int rec = bind(m_UDPSocket,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
sendto(m_UDPSocket,(const char *)bs,50,0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));

int size = sizeof(sockaddr_in);
int nchar = 0;
while(1)
{
nchar=recvfrom(m_UDPSocket,(char * )Buf,500,0,(sockaddr FAR*)&sev,&size);
if(nchar >= 0)
break;

}

为什么我的nchar为50呢?还是空的啊?
...全文
151 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanfeng231 2004-09-08
  • 打赏
  • 举报
回复
我看还是算了
whwrb 2004-09-08
  • 打赏
  • 举报
回复
recvfrom 返回你接受到的字节数
sendto(m_UDPSocket,(const char *)bs,50,0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
50 表示你发送了50个字节
bs 你在什么地方初始化的阿 看看你BS初始化 怎么做的
nanfeng231 2004-09-08
  • 打赏
  • 举报
回复
to yinzhaohui
我是发了50个字节啊
nanfeng231 2004-09-08
  • 打赏
  • 举报
回复
呵呵,我接到了50个字节的空值啊?
adamx 2004-09-08
  • 打赏
  • 举报
回复
接受到50个字节吧。看看中间有没有结束符。
MFCClass 2004-09-08
  • 打赏
  • 举报
回复
测试在测试
gdy119 2004-09-08
  • 打赏
  • 举报
回复
sendto(m_UDPSocket,(const char *)bs,sizeof(bs),0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
nchar=recvfrom(m_UDPSocket,(char * )Buf,500,0,(sockaddr FAR*)&sev,&size);这里的nchar是指接收到的数据字节数目!
t0mychen 2004-09-08
  • 打赏
  • 举报
回复
sendto(m_UDPSocket,(const char *)bs,50,0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
这里只发送了50吧
nchar=recvfrom(m_UDPSocket,(char * )Buf,500,0,(sockaddr FAR*)&sev,&size);这里的nchar是指接收到的数据长度,不是缓冲区长度
oyljerry 2004-09-08
  • 打赏
  • 举报
回复
楼主再仔细检查一下代码吧
zhujianping_es 2004-09-08
  • 打赏
  • 举报
回复
有数据呀!

#include "stdafx.h"
#include <winsock2.h>

#pragma comment(lib,"ws2_32.lib")
int main(int argc, char* argv[])
{
WSADATA wsaData;
WSAStartup(MAKEWORD(1,1),&wsaData);

SOCKET m_UDPSocket = socket(AF_INET,SOCK_DGRAM,0);

sockaddr_in sev;
sev.sin_family = AF_INET;
sev.sin_port =5555;// 137;

sev.sin_addr.S_un.S_un_b.s_b1 = 127;
sev.sin_addr.S_un.S_un_b.s_b2 = 0;
sev.sin_addr.S_un.S_un_b.s_b3 = 0;
sev.sin_addr.S_un.S_un_b.s_b4 = 1;

sev.sin_zero[0]=htons(0);;

char sendBuffer[50];
strcpy(sendBuffer,"David Ripple!");
int rec = bind(m_UDPSocket,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
int nSend=sendto(m_UDPSocket,(const char *)sendBuffer,50,0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
printf("Have sent%d bytes\n",nSend);

int size = sizeof(sockaddr_in);
int nchar = 0;
char Buf[500];

//::Sleep(2000);
while(1)
{
printf("++++nChar=%d\n",nchar);
nchar=recvfrom(m_UDPSocket,(char * )Buf,500,0,(sockaddr FAR*)&sev,&size);
printf("----nChar=%d\n",nchar);
if(nchar >= 0)
break;

}


printf("nChar=%d\nBuffer Content:\n%s\n",nchar,Buf);
return 0;
}

==================================================================
Buffer Content:
David Ripple
月吻长河 2004-09-08
  • 打赏
  • 举报
回复
你发的是什么?字符串?
yinzhaohui 2004-09-07
  • 打赏
  • 举报
回复
sendto(m_UDPSocket,(const char *)bs,50,0,(sockaddr FAR*)&sev,sizeof(sockaddr_in));
这儿是发了50吗

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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