
linux , gcc 4.0,想写一个收邮件的程序 建立到smtp.163.com 25的socket, recv "220 163.com Anti-spam GT for Coremail System (163com[20050206])" send "ehlo mailserver" recv 250-mail 250-PIPELINING 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME send "Auth login" 或 "quit"都提示502 Error: command not implemented 可是直接telnet到邮件服务...
我在ontimer下写了这样的程序: void CTry3Dlg::OnTimer(UINT nIDEvent) { if(connect(sock,(const sockaddr*)&server,sizeof(server))<0) { MessageBox("connecting stream socket error"); closesocket(sock); } else { memset(buf,0,sizeof(buf)); rval=recv(sock,buf,12,0); if(rval<0) // 协议在传送s的发送缓冲区中的数据是出现网络错误 { MessageBox("接收出错"...
为什么socket建立之后不能进行循环发送呢,但是把socket的建立放入循环中就可以多次发送了, 难道建立一次socket只能执行一次发送动作???,请有经验的朋友说说!! #!/usr/bin/perl #client端 use IO::socket; my $port=Peerport; my $msg="hello"; my $n=0; my $socket=IO::socket::INET->new( PeerAddr=>'127.0.0.1', PeerPort=>3000, Proto=>"tcp", listen=>5...
#include
现在对方发一个大包(80k)就报错,对方说是我这边不能接收导致的。我这边用while去读他的,每次循环的结果如下(我的日志): dataThisTimeRead:2044 dataThisTimeRead:10220 dataThisTimeRead:2920 累加起来不过收了十多k,就收不到了,然后read函数就一直在等待超时。(我先读出了他的包长是80多k) 急问:往socket写东东,一次最多多少byte能成功发送? 这种情况是对方的问题还是我这边的问题?谢谢
详细代码就不写了,发送一个POST请求到apache服务器 发送: sendlength=send(H_socket,sendbuf,strlen(sendbuf),0); // printf("send length:%d\n",sendlength); 虽然没做检验,但是发送基本上没问题,用NC监听80时状态很稳定 接受代码1: do { recvlength=recv(H_socket,tmpbuf,sizeof(tmpbuf),0); strcat(recvbuf,tmpbuf); } while(recvlength>...
以下这段代码,当第二次执行accept函数时就会返回失败,不知道为什么。 有可能在那些方面出问题呢? :shock: struct sockaddr_in client_addr; while(1) // accept more than one connections { socklen_t namelen = sizeof(client_addr); socket s; if ((s = accept(gSvrGlobal.gSvrSock, (struct sockaddr *)&client_addr, (socklen_t *)&namelen)) ==-1){ DBGPRINT(("Sever socket can not accept\n")); return...
各位大虾,我与服务端通讯,当发送一次数据后没得到回应 ,再发送时write(sockfd,buff,len)的返回值小于0,于是我重新connect,但总是连接不成功,请高手指教,谢谢
我建立了一个TCP的连接,当客户端连接后,然后断开。类似这样的操作我连续连接断开255次后,就再也连不上了?不知道是哪里的问题。高手执教下。是不是我关闭的不对啊?我开发的平台是Solaris9下的Sunstudio11,用函数close(socketid),关闭的。
先向各位大师说说基本状况(java): 1:异步通讯,一个socket,一个线程对它进行发,一个线程对它进行收,发送的包和收到的包通过一个msgid来关联。 2:和服务器建立长连接; 3:收,发的包的前四个字节是一个int,用于说明此次传输的总长度,先readint,然后在根据长度说明去循环读服务器发过来的东东。收数据的代码如下: byte[] receivedData; int dataSize; dataSize = in.readInt(); // 注意:recievedata 不包含消息包...