當前位置:首頁 » 編程軟體 » socket多線程編程c

socket多線程編程c

發布時間: 2022-03-03 18:22:09

㈠ c++ socket編程中的多線程處理問題

你說的有點沒看明白,這樣的代碼結構應該可以吧。不過不會state一變化就停止a操作,一次a操作的流程要執行完,在下次進入循環的時候才會轉去執行其他操作。

while() //死循環
{
if(state == 2)

{
//執行其他操作
usleep();//如果沒有其他操作,可以睡眠一段時間 比如10ms。
contunue;

}
// a操作

}

㈡ VC++ socket多線程編程問題

WSAStartup()和WSACleanup()在主線程調用一次就行,一般在main函數調用。
不調用WSACleanup()在進程結束後系統會幫你回收資源。
建議還是調用WSACleanup(),寫出程序看起來邏輯嚴謹。

㈢ 關於java socket 多線程編程

業務需要這么復雜嗎???如果你要實現伺服器和客戶端都可以向對方發送消息,而不等待對方應答,只需要把InputStream和OutputStream分別放在兩個不同線程里就行了,即是說把接收流與發送流分別用一個線程監聽處理。如果要實現不分客戶端伺服器的話,用UDP通信即可

linux C socket編程多線程問題

在線程函數內定義同樣類型的局部變數,創建線程時將client_socket_fd
值傳遞給該局部變數,以後在該線程中只使用線程函數中的局部變數就可以了。

例如:
pthread_create(&iThreadId, &attr, ThreadProc, client_socket_fd);
線程函數:(其中使用fd)

void *ThreadProc(void *lpVoid)
{
SOCKET *fd = (SOCKET)lpVoid;
... ...
}

㈤ 有windows上C語言開發多線程socket通信的例子么

http://www.jb51.net/article/44156.htm
這里的OK不?

㈥ c#多線程socket編程

多建幾個線程接受請求

㈦ c++ 多線程socket編程可以多個線程同時accept數據嗎

監聽連接都用一個線程就行了,多線程監聽是不明智的,監聽到之後把創建連接的套接字發送給其他線程通信就行。。。。

㈧ 剛介入linux c的socket編程沒多久,想要寫一個socket客戶端,實現多線程處理發送和接收,哪位大俠幫幫忙啊

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

#define PORT 8888

void *yourfunction(void *connect_fd)
{
int connfd = *((int *)connect_fd);
。。。。
} //你沒說具體的應用,所以只能寫這么多了。在這裡面直接對connfd調用read和write函數就可以和客戶端收發數據了。

//補充:是啊 返回給客戶端什麼信息啊?

int main(void)
{
int sockfd, n, connfd;
pthread_t tid;
struct sockaddr_in servaddr;

sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1)
{
perror("socket:");
exit(1);
}

bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_port = htons(PORT);

n = bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
if (n == -1)
{
perror("bind:");
exit(1);
}

n = listen(sockfd, 20);
if (n == -1)
{
perror("listen:");
exit(1);
}

while (1)
{
connfd = accept(sockfd, (struct sockaddr *)&servaddr, NULL);
pthread_create(&tid, NULL, yourfunction, (void *)&connfd);
}

return 0;
}

㈨ socket編程在多線程中需要注意哪些

你別多個線程在同一個socket上調用accept就成。

多個線程在同一個socket上調用accept我真不知道它會有什麼樣的行為
常見的一種做法是在一個socket上調用accept,接受連接以後丟給某個線程去完成接下來的事情

㈩ 關於Socket多線程編程的recv函數問題

建議設個flag,在服務端進這個while後,如果沒處理(文件沒發送)完畢前,不在進入,或多開幾個thread設置不同埠等待接收客戶端的要求。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:619
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:347
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:62
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:288
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:781
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:334
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:196
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:786
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:350
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:578