SOCKET编程,不是说服务端关闭后,客户端再给服务端发信息,会收到SIGPIPE信号,默认收到SIGPIPE信号会关闭进程。我做了实验,TCP,服务端在RECV一个信息后就CLOSESOCKET,RETURN,而客户端SEND一个信息后SLEEP(5000);然后继续SEND下一个信息,然后GETCH()。
先开服务端,再开客户端,服务端按计划RETURN了,进入PRESS ANYKEY CONTINUE。。(服务端和客户端都是控制台程序)。而客户端却还是进入了GETCH函数,而不是退出。
为什么?

解决方案 »

  1.   

    为啥到VC版问这个问题?SIGPIPE是Unix/Linux系统中的东西。
      

  2.   

    你该不会在VC中写程序来测试SIGPIPE吧?
      

  3.   

    客户端应该是先收到RST,这个时候读数据是不会有SIGPIPE信号的,只有写数据才会
      

  4.   

    WINDOWS里面没有SIGPIPE?那WINDOWS里面是怎么判断客户端或者服务端在线情况的?
      

  5.   

    Windows里怎么判断具体不知道。
    看来你看的是果然是一份Linux/Unix相关的文档,呵呵。
    要么你到微软的MSDN里查一查send/recv的说明吧。