社区
通信技术
帖子详情
初级问题.请大侠指教.listen
cnvvv
2004-05-10 09:25:01
过程如下:
m_ListenSocket = WSASocket(...);
bind(...);
listen(...);
当开始listen时.我并不处理新来的连接.也就是当有用户连接时.我不建Accept的Socket.
问:
这个情况,客户端还能连接上服务端吗?服务器怎么关闭这样的连接呢?
...全文
46
6
打赏
收藏
初级问题.请大侠指教.listen
过程如下: m_ListenSocket = WSASocket(...); bind(...); listen(...); 当开始listen时.我并不处理新来的连接.也就是当有用户连接时.我不建Accept的Socket. 问: 这个情况,客户端还能连接上服务端吗?服务器怎么关闭这样的连接呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cnvvv
2004-05-10
打赏
举报
回复
没有accept.同样可以连接上.但就是不能收发操作与其它.这时连接是成功的.只是server没作处理.我想知道.这些连接我如何在特定时间时关掉它们呢?
netsys2
2004-05-10
打赏
举报
回复
如果你没有accept,就不能建立SOCKET连接。
下面是一个标准的SERVER代码
AnsiString Cadd;
struct sockaddr_in fsin,sin;
SOCKET ssock;
struct hostent *hostname;
int alen;
WSADATA wsadata;
if(WSAStartup(WSVERS,&wsadata)!=0)
{
//启动WinSock失败
SendMessage(m_hwnd,WM_SOCKET,INITERR,0);
return;
}
//启动WinSock成功
SendMessage(m_hwnd,WM_SOCKET,INITOK,0);
memset(&sin,0,sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_addr.s_addr=inet_addr("");
sin.sin_port=htons(m_port);
msock=socket(PF_INET,SOCK_STREAM,0);
if(msock==INVALID_SOCKET)
{
//创建Socket失败
SendMessage(m_hwnd,WM_SOCKET,CREATEERR,0);
WSACleanup();
return;
}
SendMessage(m_hwnd,WM_SOCKET,CREATEOK,0);
if(bind(msock,(struct sockaddr*)&sin,sizeof(sin))==SOCKET_ERROR)
{
//帮定Socket失败
SendMessage(m_hwnd,WM_SOCKET,BINDERR,0);
closesocket(msock);
WSACleanup();
return;
}
SendMessage(m_hwnd,WM_SOCKET,BINDOK,0);
if(listen(msock,5)==SOCKET_ERROR)
{
//监听失败
SendMessage(m_hwnd,WM_SOCKET,LISTENERR,0);
closesocket(msock);
WSACleanup();
return;
}
SendMessage(m_hwnd,WM_SOCKET,LISTENOK,0);
while(!this->Terminated)
{
alen=sizeof(struct sockaddr);
ssock=accept(msock, (struct sockaddr *)&fsin, &alen);
if(ssock==INVALID_SOCKET)
{
//接受请求失败
SendMessage(m_hwnd,WM_SOCKET,ACCEPTERR,0);
closesocket(msock);
WSACleanup();
this->Terminate();
return;
}
//接受请求成功。启动新线程接管
Cadd=AnsiString(inet_ntoa(fsin.sin_addr));
transmit=new Ttransmit(false); //启动新的线程接管accept到的socket
transmit->Init(&ssock,m_hwnd,Cadd);
}
cnvvv
2004-05-10
打赏
举报
回复
如果有漏掉的连接我没有accept.这样就进入了协议栈内部接受的连接,这样会占用一个listen(...)时设置的个数.这样漏掉的accept.我要如何处理他呢?
感谢您.太感谢您了
COM_MOC
2004-05-10
打赏
举报
回复
不明白你说的意思,accept是用来接受连接的,如果不调用这个函数即使协议栈内部接受连接,你的应用程序是不知道的,更不用说后续处理了。
cnvvv
2004-05-10
打赏
举报
回复
自己up一下.唉.......
cnvvv
2004-05-10
打赏
举报
回复
是不是分少呢?如果分少.我可以另开帖.大侠们.帮帮我吧
请
求因 HTTP 状态 405 失败:Method Not Allowed.这个webservice错误如何解决?
请
大侠
们
指教
!...
调试一个webservice应用,通过浏览器直接访问webservice,并且调用测试方法,没有任何
问题
,但是在程序中调用...
请
求
指教
.msn:jinhua_zhe@hotmail.comqq:408820574 转载于:https://www.cnblogs.com/cooperator/archive...
两分钟完成配置耗点利器
启动鼠
大侠
2.设置游戏3.运行4.注意 一、准备 解压压缩包后有四个文件。 1.autoback自动回点主程序 2.死亡弹窗截图,必须与1在同一目录下 3.鼠
大侠
安装包 第一次使用需要先安装鼠
大侠
,任意目录下即可,安装完成后...
求教各位
大侠
:
问题
事件AppHangB1
打开网页的时候,有时突然会没有响应,提示: [b]出现了一个
问题
...求教各位
大侠
,希望可以帮忙解决这个
问题
.提前谢过!以下是
问题
详细信息. 描述: 出现了一个
问题
,该
问题
导致了此程序停止与 Windows 进行交互。 ...
java窗口背景颜色怎么设定?用setBackground()好像不行,
请
大侠
指教
!
你好! 首先,你说的Java窗口是指JFrame或者Frame 其次,你说的窗口背景颜色是指直接调用JFrame或者Frame的setBackground(Color color)方法设置后显示出来的颜色。其实,你的想法是正确的,但是我想提醒你的...
oracle 无效的create,ORA-02180: 无效的 CREATE TABLESPACE 选项!
请
各位
大侠
指教
,谢谢
我想建一个表空间,运行下面的脚本报错。--创建数据字典表空间create tablespace "YCISMUST_TS_D"logging datafile'C:\YCISMUST\DATAFILE\YCISMUST_TS_D00.ora' size 1024Mext
en
t managem
en
t local uniform size 1M ...
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章