Windows Socket程式設計客戶端程式

2021-06-22 12:28:13 字數 1762 閱讀 1214

// 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,則建立乙個執行緒。滿...