当前位置:  技术问答>linux和unix

求救:Socket 通讯出现混乱,求网络编程高手!!!!!!

    来源: 互联网  发布时间:2016-03-16

    本文导语:  在服务器上的代码结构如下: ////////////////////////////////////////////////////////////////////// // File name: network_Srv.c                                  // ////////////////////////////////////////////////////////////////////// vo...

在服务器上的代码结构如下:

//////////////////////////////////////////////////////////////////////
// File name: network_Srv.c                                  //
//////////////////////////////////////////////////////////////////////

void GeneralCmdSrv()
{
    SOCKET sockCmdListen = -1;
    SOCKET sockCmdSvr = -1;
    struct sockaddr_in addr;
restart:
    sockCmdListen = socket(AF_INET, SOCK_STREAM, 0);
    ...
    if ( bind( sockCmdListen, (PSA) &addr, sizeof(addr) )  10.0.1.189.35000: P 1:7(6) ack 1 win 5840 (DF)
11:29:27.060660 10.0.1.189.35000 > 10.0.1.172.51121: . ack 7 win 8754
11:29:27.060723 10.0.1.189.35000 > 10.0.1.172.51121: P 1:21(20) ack 7 win 8760
11:29:27.060739 10.0.1.172.51121 > 10.0.1.189.35000: . ack 21 win 5840 (DF)
11:29:27.060751 10.0.1.189.35000 > 10.0.1.172.51121: F 21:21(0) ack 7 win 8760
11:29:27.060772 10.0.1.172.51121 > 10.0.1.189.35000: F 7:7(0) ack 22 win 5840 (DF)
11:29:27.060854 10.0.1.189.35000 > 10.0.1.172.51121: . ack 8 win 8760
11:29:27.090148 10.0.1.172.51122 > 10.0.1.189.35000: S 2489297045:2489297045(0) win 5840  (DF)
11:29:27.090556 10.0.1.189.35000 > 10.0.1.172.51122: S 2295442432:2295442432(0) ack 2489297046 win 8760 
11:29:27.090564 10.0.1.172.51122 > 10.0.1.189.35000: . ack 1 win 5840 (DF)
11:29:27.090602 10.0.1.172.51122 > 10.0.1.189.35000: P 1:7(6) ack 1 win 5840 (DF)
11:29:27.090710 10.0.1.189.35000 > 10.0.1.172.51122: . ack 7 win 8754
11:29:27.090725 10.0.1.172.51122 > 10.0.1.189.35000: P 7:12(5) ack 1 win 5840 (DF)
11:29:27.090802 10.0.1.189.35000 > 10.0.1.172.51122: . ack 12 win 8755
11:29:27.093640 10.0.1.189.35000 > 10.0.1.172.51122: P 1:12(11) ack 12 win 8760
11:29:27.093667 10.0.1.189.35000 > 10.0.1.172.51122: F 12:12(0) ack 12 win 8760
11:29:27.093689 10.0.1.172.51122 > 10.0.1.189.35000: . ack 12 win 5840 (DF)
11:29:27.093700 10.0.1.172.51122 > 10.0.1.189.35000: F 12:12(0) ack 13 win 5840 (DF)
11:29:27.093799 10.0.1.189.35000 > 10.0.1.172.51122: . ack 13 win 8760
11:29:27.140139 10.0.1.172.51123 > 10.0.1.189.35000: S 2493355042:2493355042(0) win 5840  (DF)
11:29:27.144844 10.0.1.189.35000 > 10.0.1.172.51123: S 2295506432:2295506432(0) ack 2493355043 win 8760 
11:29:27.144852 10.0.1.172.51123 > 10.0.1.189.35000: . ack 1 win 5840 (DF)
11:29:27.144890 10.0.1.172.51123 > 10.0.1.189.35000: P 1:7(6) ack 1 win 5840 (DF)
11:29:27.144982 10.0.1.189.35000 > 10.0.1.172.51123: . ack 7 win 8754
11:29:27.145045 10.0.1.189.35000 > 10.0.1.172.51123: P 1:21(20) ack 7 win 8760
11:29:27.145062 10.0.1.172.51123 > 10.0.1.189.35000: . ack 21 win 5840 (DF)
11:29:27.145070 10.0.1.189.35000 > 10.0.1.172.51123: F 21:21(0) ack 7 win 8760
11:29:27.145093 10.0.1.172.51123 > 10.0.1.189.35000: F 7:7(0) ack 22 win 5840 (DF)
11:29:27.145175 10.0.1.189.35000 > 10.0.1.172.51123: . ack 8 win 8760
其中正常通讯时红色部分是主线程的发送命令,黑色是定时器发送的命令,这个TCP的通讯格式是对的.
异常通讯时:
11:29:28.090149 10.0.1.172.51136 > 10.0.1.189.35000: S 2488170508:2488170508(0) win 5840  (DF)
11:29:28.090426 10.0.1.189.35000 > 10.0.1.172.51136: S 2296850432:2296850432(0) ack 2488170509 win 8760 
11:29:28.090436 10.0.1.172.51136 > 10.0.1.189.35000: . ack 1 win 5840 (DF)
11:29:28.090477 10.0.1.172.51136 > 10.0.1.189.35000: P 1:7(6) ack 1 win 5840 (DF)
11:29:28.090581 10.0.1.189.35000 > 10.0.1.172.51136: . ack 7 win 8754
11:29:28.090597 10.0.1.172.51136 > 10.0.1.189.35000: P 7:12(5) ack 1 win 5840 (DF)
11:29:28.090677 10.0.1.189.35000 > 10.0.1.172.51136: . ack 12 win 8755
11:29:28.100142 10.0.1.172.51137 > 10.0.1.189.35000: S 2494818819:2494818819(0) win 5840  (DF)
11:29:28.100700 10.0.1.189.35000 > 10.0.1.172.51136: P 1:12(11) ack 12 win 8760
11:29:28.100718 10.0.1.172.51136 > 10.0.1.189.35000: . ack 12 win 5840 (DF)
11:29:28.100766 10.0.1.189.35000 > 10.0.1.172.51136: F 12:12(0) ack 12 win 8760
11:29:28.100898 10.0.1.189.35000 > 10.0.1.172.51137: S 2296914432:2296914432(0) ack 2494818820 win 8760 
11:29:28.100906 10.0.1.172.51137 > 10.0.1.189.35000: . ack 1 win 5840 (DF)
11:29:28.140127 10.0.1.172.51136 > 10.0.1.189.35000: . ack 13 win 5840 (DF)
11:29:29.100153 10.0.1.172.51138 > 10.0.1.189.35000: S 2496726679:2496726679(0) win 5840  (DF)
11:29:29.100429 10.0.1.189.35000 > 10.0.1.172.51138: S 2297618432:2297618432(0) ack 2496726680 win 8760 
11:29:29.100440 10.0.1.172.51138 > 10.0.1.189.35000: . ack 1 win 5840 (DF)
11:29:29.100477 10.0.1.172.51138 > 10.0.1.189.35000: P 1:7(6) ack 1 win 5840 (DF)
11:29:29.100555 10.0.1.189.35000 > 10.0.1.172.51138: . ack 7 win 8754
11:29:29.100571 10.0.1.172.51138 > 10.0.1.189.35000: P 7:12(5) ack 1 win 5840 (DF)
11:29:29.100646 10.0.1.189.35000 > 10.0.1.172.51138: . ack 12 win 8749
11:29:33.100133 10.0.1.172.51137 > 10.0.1.189.35000: F 1:1(0) ack 1 win 5840 (DF)
11:29:33.100146 10.0.1.172.51138 > 10.0.1.189.35000: P 12:18(6) ack 1 win 5840 (DF)
11:29:33.102709 10.0.1.189.35000 > 10.0.1.172.51137: . ack 2 win 8760
11:29:33.102744 10.0.1.189.35000 > 10.0.1.172.51138: . ack 18 win 8743
11:29:33.102792 10.0.1.189.35000 > 10.0.1.172.51138: R 1:1(0) ack 18 win 8743
11:29:33.102845 10.0.1.189.35000 > 10.0.1.172.51137: F 1:1(0) ack 2 win 8760
11:29:33.102864 10.0.1.172.51137 > 10.0.1.189.35000: . ack 2 win 5840 (DF)
11:29:33.180144 10.0.1.172.51139 > 10.0.1.189.35000: S 2498729159:2498729159(0) win 5840  (DF)
11:29:34.100150 10.0.1.172.51140 > 10.0.1.189.35000: S 2501003931:2501003931(0) win 5840  (DF)
11:29:36.180132 10.0.1.172.51139 > 10.0.1.189.35000: S 2498729159:2498729159(0) win 5840  (DF)
...
...
以后Client(10.0.1.172)不停向Server(10.0.1.189)发送SYN.

|
你是怎么设置的定时器?信号?

|
看楼主这个服务器端程序真是长见识了。
竟然还可以这么写。。。
我还真保守啊,服务器端一直都只fork子进程来处理客户端,goto都基本不用。。。

|
试试
st_nonblocking(sockCmdListen);
sockCmdSvr = accept( sockCmdListen, (PSA)&addr, &size );
st_blocking(sockCmdListen);
...
st_nonblocking(sockCmdListen);
fdClose(sockCmdListen);

////////////////////////////////////////////////////
void st_nonblocking(int sid){
     int flag;
     flag = fcntl(sid,F_GETFL,0);
     flag |= O_NONBLOCK;
     fcntl(sid,F_SETFL,flag);
}

void st_blocking(int sid){
     int flag;
     flag = fcntl(sid,F_GETFL,0);
     flag &= ~O_NONBLOCK;
     fcntl(sid,F_SETFL,flag);
}

|
tcpdump  -p   不让网络界面进入混杂模式

|
需要你用tcpdump的参数
说一下你在client的socket option吧.

ping不通是什么意思?能恢复吗?
netstat看listening port什么情况?

|
都是很好的建议! 值得学习

|
接分先!

    
 
 

您可能感兴趣的文章:

  • 求救,请问哪里有unix网络编程的电子书下载(richard stevens)
  • java网络编程的基本问题,求救(在线等待)
  • 安装solaris 10出现问题,向高人求救,谢谢
  • redhat9 root桌面出现一个乱码文件夹 删除不了 求救
  • 删除了linux分区,windows启动时怎么出现grub>?求救!!!
  • 求救!!:Applet中出现java.lang.NoClassDefFoundError
  • linux下配制OpenLDAP出现问题,十万火急,求救!!!!
  • 调试出现的一个错误(高分求救!!)
  • 紧急求救:linux启动不了,开机后出现如下提示:
  • ★★★★★★紧急求救!!!为什么下载JDK1.4一到99%就出现错误!!!★★★★★
  • 【江湖求救】用VMware station 安装linux出现这样的错误提示 崩溃了
  • 求救:ping自己的时候出现 No route to host 是什么意思?
  • 求救:在Linux编译中出现错误, TLS definition in bbc.so.6 section
  • 不能出现双系统画面了,也进了任何一个系统!!!!高分求救!
  • 紧急求救:安装FC6时候出现问题,重新引导后无法进入系统 显示显示器的水平刷新率超出工作范围
  • 求救:安装subversion时候出现 "configure failed for serf"
  • RH9安装后无法出现图形化界面?(百分急求救)
  • apache soap配置出现的问题,高分求救
  • 在ubuntu7.10下安装软件出现的问题,各种方法都无法解决……求救
  • send时候出现Resource temporarily unavailable求救!!急!!
  • Fedora12编译 wxWidgets 多个版本出现相同错误!求救!
  • 求救:移植qtopia2.2.0出现的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求救!求救!紧急求救!为什么更新不了所指定的内容?
  • 求救!!!硬件高请进、、、、、、(十万火急,高分求救。)
  • 求救求救!!
  • 求救啊 高分求救 UNIX下关于进程通讯的问题~
  • 求救!!!求救!!!机器不能正常启动
  • 关于jdbc,求救求救!在线等待,马上给分
  • 紧急求救,root用户无权限删除文件
  • 晕,特晕...求救...
  • 高分求救~~如何取得linux下进程完整命令行字符串,就是的ps -ef 完整的全路径的CMD那一列,求救!!!!附现在的代码
  • 求救!weblogic6.0后台运行正确,前台页面跳转或调用其他页面时出“页面无法显示错误”
  • 求救:java里如何取整一个浮点数(不做四舍五入)
  • 紧急求救!!
  • Linux下无法启动apache 高分求救!在线等待
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题 (分不够可加)
  • 紧急求救 我用freebsd通过smbfs连接win2000的一些问题
  • 求救,linux和windows之间如何联成局域网(设置),并且相互之间移动文件。
  • 求救!!在Redhat7.3下安装scim0.9.3怎么安装?
  • Linux8.0 修改字符集后,再次进系统,无图形界面问题。。。求救。。
  • SUSE网络打印机问题,在线等,求救!!
  • 散分一百,紧急求救!ROOT密码忘记


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3