永发信息网

关于accept()函数

答案:3  悬赏:50  手机版
解决时间 2021-11-08 06:24
关于accept()函数
最佳答案
accept()函数用于一个套接口接受一个连接。accept()是c语言中网络编程的重要的函数,windows系统在#include ,而linux系统在#include 中。
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
参数
sockfd:套接口描述字,该套接口在listen()后监听连接。
addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。Addr参数的实际格式由套接口创建时所产生的地址族确定。
addrlen:(可选)指针,输入参数,配合addr一起使用,指向存有addr地址长度的整型数。
实例:
#ifndef UNICODE
#defineUNICODE
#endif
#include
#include
#include
#pragmacomment(lib,"Ws2_32.lib")
int wmain(void)
{
WSADATAwsaData ;
intiResult=WSAStartup(MAKEWORd(2,2),&wsaData);
if(iResult!=NO_ERROR)
{
wprintf(L "WSAStartupfailedwitherror:%ld\n",iResult);
return 1 ;
}
SOCKETListenSocket ;
ListenSocket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(ListenSocket==INVALID_SOCKET)
{
wprintf(L "socketfailedwitherror:%ld\n",WSAGetLastError());
WSACleanup();
return 1 ;
}
sockaddr_inservice ;
service.sin_family=AF_INET ;
service.sin_addr.s_addr=inet_addr("127.0.0.1");
service.sin_port=htons(27015);
if(bind(ListenSocket,
(SOCKADDR*)&service,sizeof(service))==SOCKET_ERROR)
{
wprintf(L"bindfailedwitherror:%ld\n",WSAGetLastError());
closesocket(ListenSocket);
WSACleanup();
return 1 ;
}
if(listen(ListenSocket,1)==SOCKET_ERROR)
{
wprintf(L"listenfailedwitherror:%ld\n",WSAGetLastError());
closesocket(ListenSocket);
WSACleanup();
return 1 ;
}
SOCKETAcceptSocket ;
wprintf(L "Waitingforclienttoconnect...\n");
AcceptSocket=accept(ListenSocket,NULL,NULL);
if(AcceptSocket==INVALID_SOCKET)
{
wprintf(L "accept failed with error:%ld\n",WSAGetLastError());
closesocket(ListenSocket);
WSACleanup();
return 1 ;
}
else
wprintf(L "Clientconnected.\n");
//Nolongerneedserversocket
closesocket(ListenSocket);
WSACleanup();
return 0 ;
}
全部回答
用多线程少年,每accept一个连接请求就创建一个线程去处理这个请求,记得在线程函数里把临时套接字关了,楼上灌水你还选为最佳答案?
客户端调用close()函数关闭socket对象,另客服端一个直接发起连接。因为accept()函数连接成功后,会还回一个新的文件描述符。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
每年排放到大气中的co2量是8pgc、被植物吸收
某小学41班和42班各46人四1班平均每人收集75
李思思不是山东电视台的么 怎么成北大了的,
渭南旧机动车交易中心地址有知道的么?有点事
求个安特进行曲的号,5~7位的,给分
我有个同事他在室内戴的眼镜镜片是透明的,在
空腹运动好还是饱腹运动好
房子男方公证给女方要过户费吗
作文一件让爷爷生气的事情
驾照科二老师
古厉1965年3月农厉是几月
活页检测八下科学有没有或者哪有
拉萨和衡阳相比哪里消费高
东阿阿胶与蛤蚧可以同时吃吗
脚经常脱皮,是缺什么吗
推荐资讯
银川市机动车辆安全检测中心(灵武站)地址在
为什么要定做皮鞋,博乐街手工定制皮鞋怎么样
第一个征战WNBA的中国传奇女篮球队员是谁?
ABB变频器 ACS800如何设置能够实现自动复位功
立白干洗店地址好找么,我有些事要过去,
42.2÷2=?
美国经济起搏器。现在有了解这个项目的吗?是
抚顺教育资讯
捷联惯导中初始失准角定义的定义是什么
求助:石头粘接
哪个银行可以办理一折一卡
从云南瑞丽到辽宁沈阳发的是顺丰国航多长时间
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?