sockets(套接字)程式設計有三種,流式套接字(SOCK_STREAM),資料報套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);
基于TCP的socket程式設計是采用的流式套接字。在這個程式中,将兩個工程添加到一個工作區。要連結一個ws2_32.lib的庫檔案。
伺服器端程式設計的步驟:
1:加載套接字庫,建立套接字(WSAStartup()/socket());
2:綁定套接字到一個IP位址和一個端口上(bind());
3:将套接字設定為監聽模式等待連接配接請求(listen());
4:請求到來後,接受連接配接請求,傳回一個新的對應于此次連接配接的套接字(accept());
5:用傳回的套接字和用戶端進行通信(send()/recv());
6:傳回,等待另一連接配接請求;
7:關閉套接字,關閉加載的套接字庫(closesocket()/WSACleanup())。
伺服器端代碼如下:
[VC]vc中socket程式設計步驟 #include
<stdio.h>
[VC]vc中socket程式設計步驟 <Winsock2.h>
[VC]vc中socket程式設計步驟 void
main()
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 {
[VC]vc中socket程式設計步驟 WORD wVersionRequested;
[VC]vc中socket程式設計步驟 WSADATA wsaData;
[VC]vc中socket程式設計步驟 int err;
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 wVersionRequested = MAKEWORD( 1, 1 );
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 err = WSAStartup( wVersionRequested, &wsaData );
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 if ( err != 0 )
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 return;
[VC]vc中socket程式設計步驟 }
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 if ( LOBYTE( wsaData.wVersion ) != 1 ||
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 HIBYTE( wsaData.wVersion ) != 1 )
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 WSACleanup( );
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 SOCKADDR_IN addrSrv;
[VC]vc中socket程式設計步驟 addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
[VC]vc中socket程式設計步驟 addrSrv.sin_family=AF_INET;
[VC]vc中socket程式設計步驟 addrSrv.sin_port=htons(6000);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 listen(sockSrv,5);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 SOCKADDR_IN addrClient;
[VC]vc中socket程式設計步驟 int len=sizeof(SOCKADDR);
[VC]vc中socket程式設計步驟 while(1)
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 SOCKET
sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
[VC]vc中socket程式設計步驟 char
sendBuf[50];
[VC]vc中socket程式設計步驟 sprintf(sendBuf,"Welcome %s to
here!",inet_ntoa(addrClient.sin_addr));
[VC]vc中socket程式設計步驟 send(sockConn,sendBuf,strlen(sendBuf)+1,0);
[VC]vc中socket程式設計步驟 recvBuf[50];
[VC]vc中socket程式設計步驟 recv(sockConn,recvBuf,50,0);
[VC]vc中socket程式設計步驟 printf("%s\n",recvBuf);
[VC]vc中socket程式設計步驟 closesocket(sockConn);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 }用戶端程式設計的步驟:
2:向伺服器發出連接配接請求(connect());
3:和伺服器端進行通信(send()/recv());
4:關閉套接字,關閉加載的套接字庫(closesocket()/WSACleanup())。
用戶端的代碼如下:
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
[VC]vc中socket程式設計步驟 send(sockClient,"hello",strlen("hello")+1,0);
[VC]vc中socket程式設計步驟 char recvBuf[50];
[VC]vc中socket程式設計步驟 recv(sockClient,recvBuf,50,0);
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟 closesocket(sockClient);
[VC]vc中socket程式設計步驟 WSACleanup();
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟
[VC]vc中socket程式設計步驟