Tôi đang cố gắng thực hiện lập trình socket trong C. Khi tôi cố gắng kết nối từ máy khách đến máy chủ (Ubuntu), nó sẽ hiển thị một lỗi như "kết nối thất bại".
Vì vậy, tôi nghĩ rằng vấn đề là với cổng. Tôi đang sử dụng cổng 5454 / tcp để lập trình socket.
Làm sao để biết cổng 5454 có nghe hay không? Nếu không, thì đó là cổng nào tôi có thể sử dụng để lập trình socket TCP bằng C trong Ubuntu? Có phải đó chỉ là vấn đề với cổng hoặc có gì sai trong mã của tôi hoặc có bất kỳ cài đặt nào được yêu cầu trong LINUX Ubuntu không?
EDIT: Đoạn mã:
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);
EDIT : Vấn đề nằm ở cổng, vì vậy tôi mới cài đặt lại Ubuntu và nó hoạt động. Cảm ơn tất cả các bạn.
lsof -i:5454
(bạn có thể cần phải thực thi nó với cùng một người dùng mà chương trình mở cổng thực hiện hoặc với quyền root).