编写了个 socket程序,netstat检测不到绑定的端口

Wo_der 2017-09-26 03:10:40

#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<signal.h>
#include<unistd.h>
#include<stdlib.h>
#include<assert.h>
#include<stdio.h>
#include<string.h>
#include<stdbool.h>
static bool stop=false;

static void handle_term(int sig){
stop=true;
}

int main(int argc, char *argv[]){
signal(SIGTERM,handle_term);//绑定事件处理函数

if(argc<3){
printf("uage %s ip_address port_number backlog\n ",
basename(argv[0]));
return 1;
}
//获取参数
const char *ip=argv[1];
int port=atoi(argv[2]);
int backlog=atoi(argv[3]);
printf("%s\n",ip);
printf("%d\n",port);

//
int sock=socket(PF_INET, SOCK_STREAM,0);
assert(sock>=0);

struct sockaddr_in address;
bzero( &address, sizeof(address) );
address.sin_family = AF_INET;
inet_pton(AF_INET,ip,&address.sin_addr);
address.sin_port=htons(port);

int ret=bind(sock, (struct sockaddr * )&address , sizeof(address));
assert(ret!=-1);

while(!stop){
sleep(1);
}

close(sock);
return 0;
}


运行

woder@ubuntu:~/project$ ./test 172.29.107.182 12345 5
172.29.107.182
12345



具体代码如上,该服务器参数接受三个参数:ip地址,端口号,backlog值,基本就是创建一个socket和创建一个ipv4的socket地址,然后绑定,最后listen
程序在ubuntu的虚拟机上编译运行没有错误,但在另一个终端上使用netstat -a | grep 12345 却什么都没有,是不是哪里做错了什么求解答
...全文
1689 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Wo_der 2017-09-26
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
既没listen,又没connect,还想在netstat中看到对应信息?! 完全是空想社会主义。
超尴尬 代码抄错了,谢谢赵4老师
赵4老师 2017-09-26
  • 打赏
  • 举报
回复
既没listen,又没connect,还想在netstat中看到对应信息?! 完全是空想社会主义。
Wo_der 2017-09-26
  • 打赏
  • 举报
回复
拿请问网络编程不知道要发到哪里去啊,就只有两个奇怪的版面
舉杯邀明月 2017-09-26
  • 打赏
  • 举报
回复
C代码的问题,发到VB版来?

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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