多執行緒的網路程式實現

2021-04-02 18:22:08 字數 1702 閱讀 8854

s

//#ifndef _goqomessage_h_

//#define _goqomessage_h_

//#endif

#include"goqomessage.h"

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

//執行緒處理函式

dword winapi threadfunc(lpvoid client)

mes.messagecontent[1023]='/0';

memcpy(buffer,&mes,sizeof(mes));

int isend;

for (;;)

else

}closesocket(cli);

return true;

}//程式開始

int main(int argc, char* argv)

sockaddr_in sin;

sin.sin_family=af_inet;

sin.sin_port=htons(8888);

sin.sin_addr.s_un.s_addr=inaddr_any;

if(bind(s,(lpsockaddr)&sin,sizeof(sin))==socket_error)

if(listen(s,100)==socket_error)

sockaddr_in remoteaddr;

int naddrlen=sizeof(remoteaddr);

socket client;

char sztext="hello world!";

printf("sever start sucess: /n");

while(true)

printf("接收到乙個連線:%s/n",inet_ntoa(remoteaddr.sin_addr));

handle hthread = createthread(null,0,threadfunc, (void*)client,0,null);

if (hthread == null)

//send(client,sztext,strlen(sztext),0);

//closesocket(client);

}closesocket(s);

wsacleanup();

return 0;}c

#include "goqomessage.h"

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

int main(int argc, char* argv)

sockaddr_in servaddr;

servaddr.sin_family=af_inet;

servaddr.sin_port=htons(8888);

servaddr.sin_addr.s_un.s_addr=inet_addr("127.0.0.1");

if(connect(s,(sockaddr*)&servaddr,sizeof(servaddr))==-1)

for(;;)

else

}closesocket(s);

wsacleanup();

return 0;

python程式多執行緒 PYTHON多執行緒

在單執行緒的情況下,程式是逐條指令順序執行的。同一時間只做乙個任務,完成了乙個任務再進行下乙個任務。比如有5個人吃飯,單執行緒一次只允許乙個人吃,乙個人吃完了另乙個人才能接著吃,假如每個人吃飯都需要1分鐘,5個人就需要5分鐘。多執行緒的情況下,程式就會同時進行多個任務,雖然在同一時刻也只能執行某個任...

多執行緒的實現

include include include include include include include include include include include void client void arg connfd else if ret 0 printf buf s n buf r...

多執行緒的實現

通常情況下,應用程式都是在乙個執行緒中執行操作。但是,當呼叫乙個耗時操作 例如,大批量i o或大量矩陣變換等cpu密集操作 時,使用者介面常常會凍結。而使用多執行緒可以解決這一問題。qt有兩種多執行緒的方法,一種是繼承qthread的run函式 另外一種是把乙個繼承於qobject的類轉移到乙個th...