資源簡介

代碼片段和文件信息
#include?“stdafx.h“
#include?
#include?
#pragma?comment(lib“WS2_32.lib“)
#define?BUF_SIZE?1024
void?main(void)
{
???WSADATA??????????????wsaData;
???SOCKET???????????????ListeningSocket;
???SOCKET???????????????NewConnection;
???SOCKADDR_IN??????????ServerAddr;
???SOCKADDR_IN??????????ClientAddr;
???int??????????????????ClientAddrLen;
???int??????????????????Port?=?5150;
???int??????????????????Ret;
???char?????????????????DataBuffer[?BUF_SIZE];
???//?Initialize?Winsock?version?2.2
???if?((Ret?=?WSAStartup(MAKEWORD(22)?&wsaData))?!=?0)
???{
??????//?NOTE:?Since?Winsock?failed?to?load?we?cannot?use?WSAGetLastError?
??????//?to?determine?the?error?code?as?is?normally?done?when?a?Winsock?
??????//?API?fails.?We?have?to?report?the?return?status?of?the?function.
??????printf(“WSAStartup?failed?with?error?%d\n“?Ret);
??????return;
???}
???printf(“successful?1\n“);
???//?Create?a?new?socket?to?listening?for?client?connections.
?
???if?((ListeningSocket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP))?
???????==?INVALID_SOCKET)
???{
??????printf(“socket?failed?with?error?%d\n“?WSAGetLastError());
??????WSACleanup();
??????return;
???}?
???printf(“successful?2\n“);
???//?Setup?a?SOCKADDR_IN?structure?that?will?tell?bind?that?we
???//?want?to?listen?for?connections?on?all?interfaces?using?port
???//?5150.?Notice?how?we?convert?the?Port?variable?from?host?byte
???//?order?to?network?byte?order.
???ServerAddr.sin_family?=?AF_INET;
???ServerAddr.sin_port?=?htons(Port);????
???ServerAddr.sin_addr.s_addr?=?htonl(INADDR_ANY);
???//?Associate?the?address?information?with?the?socket?using?bind.
???printf(“successful?3\n“);
???if?(bind(ListeningSocket?(SOCKADDR?*)&ServerAddr?sizeof(ServerAddr))?
???????==?SOCKET_ERROR)
???{
??????printf(“bind?failed?with?error?%d\n“?WSAGetLastError());
??????closesocket(ListeningSocket);
??????WSACleanup();
??????return;
???}
???printf(“successful?4\n“);
???//?Listen?for?client?connections.?We?used?a?backlog?of?5?which?is
???//?normal?for?many?applications.
???if?(listen(ListeningSocket?5)?==?SOCKET_ERROR)
???{
??????printf(“listen?failed?with?error?%d\n“?WSAGetLastError());
??????closesocket(ListeningSocket);
??????WSACleanup();
??????return;
???}?
???printf(“We?are?awaiting?a?connection?on?port?%d.\n“?Port);
???//?Accept?a?new?connection?when?one?arrives.
???
???ClientAddrLen=sizeof(ServerAddr);
???printf(“successful?5\n“);
???if?((NewConnection?=?accept(ListeningSocket?(SOCKADDR?*)?&ClientAddr
???????????????????????????????&ClientAddrLen))?==?INVALID_SOCKET)
???{
??????printf(“accept?failed?with?error?%d\n“?WSAGetLastError());
??????closesocket(ListeningSocket);
??????WSACleanup();
??????return;
???}
???printf(“We?successfully?got?a?connection?from?%s:%d.\n“
??????????inet_ntoa(ClientAddr.sin_addr)?ntohs(ClientAddr.sin_port));
???//?At?this?point?you?can?do?two?things?with?these?sockets.?Await
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????7079??2014-10-14?18:55??guess\w.cpp
?????文件????????3758??2014-10-14?18:55??guess\ws.cpp
?????目錄???????????0??2014-11-03?20:04??guess\
- 上一篇:將圖片二進制流存儲到數據庫中
- 下一篇:gps模擬信號軟件
評論
共有 條評論