社区
网络编程
帖子详情
套接字总是被关是怎么回事呀??????????????
smartbear_2008
2007-07-20 04:30:27
我写了一个用TCP传文件的函数,总是在While循环中套接字被关闭。
错误号是:10053:您的主机中的软件放弃了一个已建立的连接。
不知是怎么回事?哪位高手给指点指点。
...全文
189
1
打赏
收藏
套接字总是被关是怎么回事呀??????????????
我写了一个用TCP传文件的函数,总是在While循环中套接字被关闭。 错误号是:10053:您的主机中的软件放弃了一个已建立的连接。 不知是怎么回事?哪位高手给指点指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
smartbear_2008
2007-07-20
打赏
举报
回复
BOOL CCVcomProtocolTestDlg::Transmission(CString m_sIP,CString Pathname,CString Filename)
{
WSADATA wsaData; //开始socket编程
SOCKET ServerSocket;
CString str;
ServerSocket=socket(PF_INET,SOCK_STREAM,0); //创建服务器端Socket,类型为SOCK_STREAM,面向连接的通信
if(ServerSocket == INVALID_SOCKET)
{
AfxMessageBox("无法创建服务器socket!");
return FALSE;
}
DWORD dwip;
if((dwip=inet_addr(m_sIP))==INADDR_NONE)
{
AfxMessageBox("IP赋值错误");
return FALSE;
}
SOCKADDR_IN sockStruct;
sockStruct.sin_family=AF_INET; //使用TCP/IP协议
sockStruct.sin_port = htons(500);
sockStruct.sin_addr.S_un.S_addr = dwip;
memset(sockStruct.sin_zero,0,8);
int a=0;
if(connect(ServerSocket,(LPSOCKADDR)&sockStruct,sizeof(sockStruct)) == SOCKET_ERROR)
{
return FALSE;
}
str.Format("VCOMFILE rtsp://%s RTSP/1.01\r\n",m_sIP);
str += "NAME:"+Filename + "\r\n";
CFileStatus status;
CFile file;
file.Open(Pathname,CFile::modeRead | CFile::typeBinary);
if(!file)
{
return FALSE;
}
file.GetStatus(status);
LONG Filesize = status.m_size;
CString sFilesize;
sFilesize.Format("%d",Filesize);
str += "LENGTH:"+sFilesize + "\r\n\r\n";
send(ServerSocket,str.GetBuffer(0),str.GetLength()+2,0);
char *buffer = new char[1025];
int i= 0;
Sleep(1000);
while(1)
{
i=file.Read(buffer,1024);
i = send(ServerSocket,buffer,i,0);//就第二次进入这里时出错
a = GetLastError();
if(i<1024)
{
break;
}
}
struct timeval timeout ;
fd_set r;
FD_ZERO(&r);
FD_SET(ServerSocket, &r);
timeout.tv_sec = 5; //连接超时15秒
timeout.tv_usec =0;
int ret = select(ServerSocket+1,&r,NULL,NULL,&timeout);
if ( ret <= 0 )
{
closesocket(ServerSocket);
file.Close();
delete buffer;
return FALSE;
}
else
{
recv(ServerSocket,buffer,1024,0);
str = buffer;
if(str.Find("200 OK")>=0)
{
closesocket(ServerSocket);
file.Close();
delete buffer;
return TRUE;
}
}
closesocket(ServerSocket);
file.Close();
delete buffer;
return FALSE;
}
socket
套接字
编程
网络编程中,通常使用socket
套接字
编程,那么该如何使用呢?接下来我们做一个最基本的小程序实现其功能。博客地址:http://blog.csdn.net/bingdianlanxin,有问题欢迎留言!
关于监听
套接字
的形象解释
在做网络编程的时候,碰到一个监听
套接字
的问题,在这里大概描述一下:比如我的程序开了一个监听端口,与客户端建立连接之后,生成了一个新
套接字
。这时我执行了只关闭监听端口的语句,结果却发现监听端口和已建立的...
套接字
超时时间(Socket Timeout)
套接字
超时时间的设置对于网络通信的稳定性和响应性至关重要,在实际应用中,设置适当的
套接字
超时时间,可以确保在网络故障,服务器繁忙或者其他异常情况下,不会无限期的等待, 而是在超过预设时间后及时得到响应或者...
监听
套接字
连接
套接字
的区别
挺不错的文章便于理解两种
套接字
的区别。 摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后把这个...
accept()返回的
套接字
绑定哪个端口 新旧
套接字
的联系
accept()返回的
套接字
绑定哪个端口 新旧
套接字
的联系 摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的。它从内核中取出已经建立的客户连接,然后...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章