报错提示:errorcode:10038 (在一个非套接字上尝试了一个操作),不知什么原因?
[code]
#include
[code] if(sockfd >; 0) { len = write(sockfd, &info, sizeof(info)); if(len <= 0) { perror("Failed to send info"); close(sockfd); } } [/code] write前对sockfd进行了判断,但是write时总是Broken pipe,何故?
在Linux下用socket编了个客户端/服务器端程序,在同一机子上时可以运行。但是把程序放在windows下装的虚拟机里时, 客户端connect时说no route to the host。两个机子可以ping通,也在同一个ip段里,还在/etc/hosts里把对方和自己的 ip及name加上了。但还是没有用。客户端telnet到服务器端也是说no route to the host . 还有两天就检查了,急啊。 大虾帮忙啊!!!! [ 本帖最后由 hlff_104 于 2009-1-2 16:51 编辑 ]
#include
我编写了一个简单的客户端,连接远端的服务器。客户端和服务器之间有防火墙。 现在的问题是: 使用我自己编写的客户端调用send函数成功,并且使用netstat查看网络层,发送队列也没有内容,但是对方收不到任何消息。 但是如果我使用telnet程序直接Telnet远程端口并发送同样的数据,对方能收到消息并正确返回。 这是什么原因造成这种原因。 另外,我的客户段调用在同一台主机上的服务器程序,也能正常工作。 附...
我的socket客户端与服务器建立连接后,用send()发送数据,如果连接成功,对方服务器关闭或断网,之后客户端马上send(),依然返回成功,使用select()检查也同样是可用,请问在这种情况下如何保证send()之前,能检查出连接已经断开? 我尝试用gethostname(),如果服务器断了,我马上gethostname(),确实会返回错误信息,如果在每次send()前都用gethostname()检查连接开销是不是很大啊?在我的机器上循环gethostname()51200次,用时0...
写了一个简单的文件传输的socket测试程序,流程是这样的:服务器端先发送文件的名字,客户端接收文件名 以此名创建一个文件,接着服务器端循环读文件发送到客户端。我想问的是有没有这种可能:客户端读到的文件名会是服务器端发送的文件名+部分文件内容。就是说服务器端发送完文件名后,紧接着发送文件内容。那我在客户端read得到会不会是文件名+部分文件内容,比方说read 255个字节,server端发送的文件名士16个字节。