18,356
社区成员
发帖
与我相关
我的任务
分享
do
{
//初始化WSA
WORD sockVersion = MAKEWORD(2, 2);
WSADATA wsaData;
cResult.iResult = WSAStartup(sockVersion, &wsaData);
if (cResult.iResult)
{
cResult.strErr = "WSAStartup失败";
break;
}
//创建套接字
SOCKET slisten = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (slisten == INVALID_SOCKET)
{
cResult.iResult = -1;
cResult.strErr = "创建套接字失败";
break;
}
//绑定IP和端口
sockaddr_in sin;
sin.sin_family = AF_INET;
int iPort = g_cfgManger.GetListenPort();
if (iPort < 0){
cResult.iResult = -1;
cResult.strErr = "端口号不合法";
break;
}
sin.sin_port = htons(iPort);
sin.sin_addr.S_un.S_addr = INADDR_ANY;
if (bind(slisten, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
cResult.iResult = -1;
cResult.strErr = "绑定IP和端口失败";
break;
}
//开始监听
if (listen(slisten, 1) == SOCKET_ERROR)
{
cResult.iResult = -1;
cResult.strErr = "监听出错";
break;
}
//循环接收数据
SOCKET sClient;
sockaddr_in remoteAddr;
int nAddrlen = sizeof(remoteAddr);
char revData[255];
int iCntText = 0;
while (true)
{
iCntText++;
printf("监听中\n");
sClient = accept(slisten, (SOCKADDR *)&remoteAddr, &nAddrlen);
if (sClient == INVALID_SOCKET)
{
//printf("accept error !");
printf("监听到错误socket");
continue;
}
//printf("接受到一个连接:%s \r\n", inet_ntoa(remoteAddr.sin_addr));//会报错 error C4996: 'inet_ntoa': Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings d:\linhs\项目\多线程接收文件服务\myhttpserver\myhttpserver\myhttpserver.cpp 115 1 MyHttpserver
printf("接受第%d个连接:%s \r\n",iCntText, inet_ntoa(remoteAddr.sin_addr));
char acBuf[1024] = { 0 };
recv(sClient, acBuf, 1024, NULL);
DWORD dwThreadId;
newCnctThdParam * cnctParam = new newCnctThdParam;
cnctParam->OneSocket = sClient;
cnctParam->strRecvData = acBuf;
cnctParam->pClass = this;
CreateThread(NULL, NULL, NewConnectThread, cnctParam, NULL, &dwThreadId);
}
closesocket(slisten);
WSACleanup();
} while (0);
string Url = "http://127.0.0.1/AskforTransport?fileSize=1111";
//string Url = "http://www.ltaaa.com/";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.KeepAlive = false;
HttpWebResponse response ;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}