繁体   English   中英

如何在C中连接客户端/服务器(Beej的网络编程指南)

[英]How to connect client/server in C (Beej's Guide to Network Programming)

我正在编写一个简单的C网络编程教程: https//beej.us/guide/bgnet/html/multi/index.html

阅读完之后,我的计划是实现一个测试客户端/服务器程序,然后开始玩,修改东西,添加东西等。我实现了这里找到的程序(第一个客户端/服务器集处理TCP连接) : https//beej.us/guide/bgnet/html/multi/clientserver.html

基本上,“服务器”在一台机器上运行,当客户端连接时,服务器只发送“Hello,world!” 当我在同一台机器上运行并连接到localhost时,这可以正常工作。

但是,我无法连接不同的机器(在Debian和OpenBSD服务器上都试过,没有iptables / pf规则集)。 连接只是超时,我不确定为什么。 我可以ping和ssh两者。

任何人,特别是熟悉本教程的人,都能指出我正确的方向吗?

编辑:服务器上没有X,所以没有截图,但netstat -tlnp | grep 3490什么也没给我。

netstat -an显示在3490上侦听tcp连接。

就在if (bind(sockfd, p->ai_addr, p->ai_addrlen) == -1) {之前if (bind(sockfd, p->ai_addr, p->ai_addrlen) == -1) {打印出p->ai_addr的值我敢打赌它是127.0.0.1。 这将导致通信在一台计算机上正常工作,但不会在其他任何地方发生。

要侦听所有接口,请绑定0.0.0.0。

我没有看到你的servinfo被填充到代码中的任何位置

//服务器应允许来自任何IP地址的连接

  serv_info.sin_addr.s_addr = INADDR_ANY;

您也可能需要填写家庭和港口

//填写服务器的地址系列

  serv_addr.sin_family = AF_INET;

需要更多细节,这是我在论坛上写的一个工作服务器http://forum.codecall.net/topic/63924-a-simple-tcp-server-using-linux-c-api/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM