gpt4 book ai didi

c# - 使用 C# 客户端连接到 C 服务器时出错

转载 作者:可可西里 更新时间:2023-11-01 02:54:23 25 4
gpt4 key购买 nike

我正在尝试将我的 C# 客户端连接到我的 C 服务器。客户端在 Windows 上,服务器在 Linux 上。

服务器运行没有错误,但客户端无法连接,连接超时。

c 服务器:

int main()
{
int socketid;
int clientid = 0;
char bufer[1024];
struct sockaddr_in serv_addr, client_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
int addrlen = sizeof(client_addr);

printf("Start\n");

if((socketid = socket(AF_INET, SOCK_STREAM, 0)) < 0){
printf("Error ceating socket!\n%s", strerror(errno));
getchar();
return 0;
}
printf("S0cket created\n");
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = 802;

if(bind(socketid, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) < 0){
printf("%s\n", strerror(errno));
getchar();
return 0;
}
printf("Bindend\n");
listen(socketid, 0);
printf("Listening\n");

printf("Entering loop\n");
while(1)
{
sleep((50)*1000);
clientid = accept(socketid, (struct sockaddr*) &client_addr, &addrlen);
if(clientid > 0){printf("accepted");}else{printf("error");}
}
}

C# 客户端:

void btnClick(object Sender, EventArgs e)
{
TcpClient client = new TcpClient();
client.Connect("192.168.1.102", 802);
}

怎么了?

提前致谢

最佳答案

在 Linux 上你绝对需要这个:

serv_addr.sin_port = htons(802);

因为您需要从主机到网络顺序。所以你的服务器实际上正在监听一个与你预期不同的端口。即 802 字节反转。

关于c# - 使用 C# 客户端连接到 C 服务器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com