我试图在C中实现套接字编程。当我尝试从客户端连接到服务器(Ubuntu)时,它显示诸如“连接失败”之类的错误。
所以我认为问题出在港口。我正在使用5454 / tcp端口进行套接字编程。
我怎么知道5454端口是否在监听?如果不是,那么我可以在Ubuntu中使用C进行TCP套接字编程的端口是哪些?这仅仅是端口问题,还是我的代码有问题或在LINUX Ubuntu中需要任何设置吗?
编辑: 代码段:
int socket_send;
struct sockaddr_in address;
printf("\n Initialization Socket....");
socket_send = socket(AF_INET,SOCK_STREAM,0);
if(socket_send == -1)
{
perror("\n Socket not created.Error:");
return 1;
}
printf("\n Socket created");
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(ip);
address.sin_port=htons(5454);
if(connect(socket_send,(struct sockaddr*)&address,sizeof(struct sockaddr))<0)
{
perror("\nConnetion failed.Error:");
return 1;
}
printf("\n Connected");
if(send(socket_send,(char*)buffer,size,flag)<0)
{
perror("\nSending failed.Error:");
return 1;
}
printf("\n Data successfully sent");
close(socket_send);
编辑:问题在端口,所以我只是重新安装了Ubuntu,它正在工作。谢谢大家
lsof -i:5454
(您可能需要以与打开端口的程序相同的用户身份或以root用户身份执行它)。