服務端
#include "initsock.h"
#include
#include
#include
#include
using
namespace
std;
cinitsock initsock; // 初始化winsock庫
sockaddr_in serveraddr;
//sockaddr_in remoteaddr;
int naddrlen = sizeof(serveraddr);
socket slisten = ::socket(af_inet, sock_stream, 0);
socket sclient[20] = ;
int q=0;
dword _stdcall threadproc_sea(lpvoid ipparamenter)
}return0;}
dword _stdcall threadproc(lpvoid ipparamenter)
char sendbuf[20] = ;
inet_ntop(af_inet, (void*)&serveraddr.sin_addr, sendbuf, 16);
printf("接受到乙個連線:%s \r\n", sendbuf);
q++;
return0;}
int main()
// 填充sockaddr_in結構
zeromemory((char *)&serveraddr, sizeof(serveraddr));
serveraddr.sin_family = af_inet;
serveraddr.sin_port = htons(8888); /*本地監聽埠:1234*/
serveraddr.sin_addr.s_addr = htonl(inaddr_any);
// 繫結這個套節字到乙個本地位址
if (::bind(slisten, (lpsockaddr)&serveraddr, sizeof(serveraddr)) == socket_error)
// 進入監聽模式
if (::listen(slisten, 2) == socket_error)
// 迴圈接受客戶的連線請求
char sztext = " tcp server demo! \r\n";
createthread(null, 0, threadproc, null, 0, null);
while (true)
}// 關閉同客戶端的連線
for (int i = 0; i < q; i++)
// 關閉監聽套節字
::closesocket(slisten);
return
0;}
客戶端
#include "initsock.h"
#include
#include
#include
using
namespace
std;
cinitsock initsock; // 初始化winsock庫
char buff[256];
socket s = ::socket(af_inet, sock_stream, ipproto_tcp);
dword _stdcall go(lpvoid ipparamenter)
}return0;}
int main()
// 也可以在這裡呼叫bind函式繫結乙個本地位址
// 否則系統將會自動安排
// 填寫遠端位址資訊
sockaddr_in servaddr;
servaddr.sin_family = af_inet;
servaddr.sin_port = htons(2001);
// 注意,這裡要填寫伺服器程式(tcpserver程式)所在機器的ip位址
// 如果你的計算機沒有聯網,直接使用127.0.0.1即可
inet_pton(af_inet, "192.168.1.1", (void*)&servaddr.sin_addr.s_un.s_addr);
if (::connect(s, (sockaddr*)&servaddr, sizeof(servaddr)) == -1)
cout
<< "connect succeed!\n";
char sztext[256];
/*while (true)
*/// 向伺服器端傳送資料
/* sleep(1000);
strcpy_s(sztext,"1023\n");
sztext[255] = '\0';
::send(s, sztext, strlen(sztext), 0);
}*/// 關閉套節字
::closesocket(s);
return
0;}
TCP通訊C 實現
tcp客戶端與伺服器端通訊模型 伺服器端實現 include include pragma comment lib,ws2 32 using namespace std void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 ...
linux下C 實現TCP通訊
udp教程可以檢視 tcp通訊協議鏈結過程如下圖所示。由上圖可看出 tcp的伺服器需要bind listen accept tcp的客戶端需要connect 伺服器 如下 include include include include include include include include ...
socket實現TCP通訊
tcp是一種可靠的,面向連線的協議。在socket中,建立tcp連線的過程大致如下 伺服器端 1.初始化套接字 2.建立伺服器socket 3.將本機位址與伺服器socket繫結在一起 4.伺服器開始監聽 5.伺服器確認請求 確認之前時一種阻塞的狀態 accept 函式生成乙個新的socket。6....