天嵌 ARM开发社区

 找回密码
 注册
查看: 1694|回复: 3

新手按书上的socket套接字例子敲代码,编译运行后出错

[复制链接]
西九MJ 发表于 2014-10-25 23:20:51 | 显示全部楼层 |阅读模式
编译出程序,烧写到开发板中,运行后提示bind: Socket operation on non-socket


网上找了下原因,说是==与=优先级的问题,后来我也照着添加上(),但还是不行

代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>

#define MYPORT 3490
#define BACKLOG 10

int main()
{
int sockfd,new_fd;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
int sin_size;

if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket");
exit(1);
}

my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(MYPORT);
my_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(my_addr.sin_zero),sizeof(struct sockaddr_in));

if((bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))) == -1)//我按照网上说法添加了()了,但是无效
{
perror("bind");
exit(1);
}

if((listen(sockfd,BACKLOG)) == -1)
{
perror("listen");
exit(1);
}

while(1)
{
sin_size = sizeof(struct sockaddr_in);
new_fd = (accept(sockfd,(struct sockaddr*)&their_addr,&sin_size));
if((new_fd) == -1)
{
perror("accept");
continue;
}
printf("Gotconnection from %s\n",inet_ntoa(their_addr.sin_addr));
if(!fork())
{
if(send(new_fd,"Hello world!\n",14,0) == -1)
  perror("send");
close(new_fd);
exit(1);
}
close(new_fd);
while(waitpid(-1,NULL,0)>0);
}
}



召唤万能的版主~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| 西九MJ 发表于 2014-10-25 23:40:11 | 显示全部楼层
本帖最后由 西九MJ 于 2014-10-26 09:00 编辑

还有一个
我是用: arm-linux-gcc server.c -o server命令来交叉编译的,对命令有要求吗我把这个当应用程序来交叉编译了
wbz073 发表于 2014-10-27 09:11:06 | 显示全部楼层

回帖奖励 +5

西九MJ 发表于 2014-10-25 23:40
还有一个
我是用: arm-linux-gcc server.c -o server命令来交叉编译的,对命令有要求吗我把这个当应用程序 ...

交叉编译就可以在板子上运行了
 楼主| 西九MJ 发表于 2014-10-27 16:43:33 | 显示全部楼层
wbz073 发表于 2014-10-27 09:11
交叉编译就可以在板子上运行了

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-7 03:55 , Processed in 1.031250 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表