作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试将我的 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/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!