// tcpclient.cpp : 定義控制台應用程式的入口點。
//#include "stdafx.h"
#undef unicode
#define win32_lean_and_mean
#include#include#include#include#include#include using namespace std;
#pragma comment (lib, "ws2_32.lib")
#pragma comment (lib, "mswsock.lib")
#pragma comment (lib, "advapi32.lib")
#define deafault_buflen 512
#define deafault_port "20000"
int _tmain(int argc, tchar* argv)
zeromemory(&hints,sizeof(hints));
//設定協議的型別指定希望獲得的伺服器的位址型別和形式!
hints.ai_family = af_unspec;
hints.ai_socktype = sock_stream;
hints.ai_protocol = ipproto_tcp;
iresult = getaddrinfo(argv[1],deafault_port,&hints,&result);
_tprintf(_t("argv[1]==[%s]\n",argv[1]));
if(iresult != 0 )
//建立連線套接字的操作!
for(ptr = result; ptr != null; ptr = ptr->ai_next)
//連線到伺服器,這個時候addr起了作用了!
iresult = connect(connectsocket,ptr->ai_addr,(int)ptr->ai_addrlen);
printf("%d\n",(int)ptr->ai_addrlen);
if(iresult == socket_error)
break;
} freeaddrinfo(result);
printf("跳出迴圈!\n");
//確認確實連線到了伺服器!
if(connectsocket == invalid_socket)
//傳送資料
while(1)
//使用者進行輸入操作
printf("傳送成功:%d\n",iresult);
zeromemory(sendbuf,deafault_buflen);
//進行輸入操作
cin>>sendbuf;
cout<0 ) else if(iresult == 0) else
}while(iresult > 0); */
closesocket(connectsocket);
wsacleanup();
return 0;
}
說明:
1.伺服器端程式採用的是阻塞模式,沒有採用io復用,如果想要反射,只需要伺服器接到資訊後,send會客戶端就可以了!!!
2.伺服器端之所以出現「燙」,是因為在列印之前沒有將字元陣列清空,使用zeromemory函式清空接收緩衝區就可以了。
Windows Socket 程式設計
伺服器端 客戶端 在 http fayaa.com code 處理的高亮顯示效果 c 語言 臨時自用 include include void main if lobyte wsadata wversion 1 hibyte wsadata wversion 1 socket socksrv soc...
Windows Socket程式設計
windows下socket程式設計主要包括以下幾部分 服務端1 初始化windows socket庫。2 建立socket。3 繫結socket。4 監聽。5 accept。6 接收 傳送資料。客戶端1 初始化windows socket庫。2 建立socket。3 連線socket。4 接收 傳...
Windows Socket程式設計
1 初始化windows socket庫。2 建立socket。3 繫結socket。4 監聽。5 accept。6 接收 傳送資料。1 初始化windows socket庫。2 建立socket。3 連線socket。4 接收 傳送資料。服務端每接收到乙個客戶端的socket,則建立乙個執行緒。滿...