运行时出现socket:Protocol not supported

heartgoon2010 2011-03-02 08:39:59
在Ubuntu下想实现一个应用程序采用UDP报文向自身发送消息的例子,源程序(UDPPeer.c)如下:
------------------------------------
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<error.h>
#include<stdlib.h>
#include<netinet/in.h>
#include<netdb.h>
#include<arpa/inet.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<unistd.h>

#define SERVER_PORT 5555
int main()
{
int peerSocket;
struct sockaddr_in self_addr;
struct sockaddr_in peer_Addr;
int peer_len = sizeof(peer_Addr);

char recvbuf[1024];
char sendbuf[1024];

if((peerSocket=socket(AF_INET, SOCK_DGRAM, 1))<1){
perror("socket");
exit(1);
}

bzero(&self_addr,sizeof(self_addr));
self_addr.sin_family = AF_INET;
self_addr.sin_port = htons(SERVER_PORT);
self_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(bind(peerSocket, (struct sockaddr*)&self_addr,sizeof(self_addr))<0){
perror("Connect");
exit(1);
}
while(1){
printf("Input your Word:>");
scanf("%s",sendbuf);
printf("\n");

sendto(peerSocket, sendbuf, 1024, 0,(struct sockaddr*)&self_addr,sizeof(self_addr));
recvfrom(peerSocket,recvbuf,1024,0,(struct sockaddr*)&peer_Addr,(socklen_t*)&peer_len);
printf("recv from %s\n",recvbuf);
}
}
------------------------------------
编译时没有问题,运行时提示socket:Protocol not supported。
问题该如何解决?
...全文
5024 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsjs_kbs 2011-10-20
  • 打赏
  • 举报
回复
我也遇到同样问题,求解
heartgoon2010 2011-03-02
  • 打赏
  • 举报
回复
To:justkk
3Q
justkk 2011-03-02
  • 打赏
  • 举报
回复
试试if((peerSocket=socket(AF_INET, SOCK_DGRAM, 0))<0){

23,183

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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