linux运行一个TCP服务器端程序,总是提示”段错误“,麻烦帮我看看到底哪里出了问题?

linux运行一个TCP服务器端程序,总是提示”段错误“,麻烦帮我看看到底哪里出了问题?,第1张

感觉问题出在
char buf[MAXSIZE]; 怀疑可能由于编译器或其他原因,系统并没有为buf分配内存空间。
导致在fgets的时候出现段错误
可以通过malloc分配空间,或者使用 static char buf[MAXSIZE]; 的方式试一下,看看是不是这个问题。

首先需要将你的项目的整个设计目的给表述明确; 然后需要将你的项目内有体现你技术价值的部分给深入分析; 其次你需要把握好重点,表述明确自己做了哪些,哪些欠缺; 最后突出你对编程能力的和编程框架额掌握程度; 当然,这只是其中的一种面试

采用多线程编程,主进程负责等待连接到来,收到连接请求后父进程派生一个线程去处理该通信过程,通信处理交给该线程,父进程继续循环等待连接请求。通信结束,该线程结束。
当然也可以采用信号触发方式,当连接请求到来时,触发父进程派生一个线程去处理该请求。

翻译自:
How to Test Port[TCP/UDP] Connectivity from a Linux Server (文档 ID 22126261)
适用于:
Linux OS - Version Oracle Linux 50 to Oracle Linux 68 [Release OL5 to OL6U8]
Information in this document applies to any platform
目标:
在Linux服务器上检查TCP/UDP端口的连通性。
解决方案:
telnet和nc 是用来测试端口连通性的一般工具。
telnet可以测试tcp端口的连通性。
nc可以测试tcp和udp端口的连通性。
请确保telnet和nc工具已经安装
在CODE上查看代码片派生到我的代码片
# yum install nc
# yum install telnet
测试tcp端口的连通性:
语法如下:
在CODE上查看代码片派生到我的代码片
telnet <hostname/IP address> <port number>
如下是连通成功的例子:
在CODE上查看代码片派生到我的代码片
# telnet 1921182095 22
Trying 1921182095
Connected to 1921182095
Escape character is '^]'
SSH-20-OpenSSH_661
Protocol mismatch
Connection closed by foreign host
如下是连通不成功的例子:
在CODE上查看代码片派生到我的代码片
# telnet 1921182095 22
Trying 1921182095
telnet: connect to address 1921182095: No route to host
使用nc命令来测试tcp端口的连通性:
语法:
在CODE上查看代码片派生到我的代码片
nc -z -v <hostname/IP address> <port number>
如下是连通成功的例子:
在CODE上查看代码片派生到我的代码片
# nc -z -v 1921182095 22
Connection to 1921182095 22 port [tcp/ssh] succeeded!
如下是连通不成功的例子:
在CODE上查看代码片派生到我的代码片
# nc -z -v 1921182095 22
nc: connect to 1921182095 port 22 (tcp) failed: No route to host
使用nc命令来测试udp端口的连通性:
语法:
在CODE上查看代码片派生到我的代码片
nc -z -v -u <hostname/IP address> <port number>
在CODE上查看代码片派生到我的代码片
# nc -z -v -u 1921182095 123
Connection to 1921182095 123 port [udp/ntp] succeeded!
nc检测端口的用法
nc -z -w 10 %IP% %PORT%
-z表示检测或者扫描端口
-w表示超时时间
-u表示使用UDP协议


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10578055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存