當前位置:首頁 » 編程軟體 » 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設置不同埠等待接收客戶端的要求。

熱點內容
阿里雲伺服器能搭美國站點 發布:2025-01-20 01:49:34 瀏覽:276
安卓手機壁紙如何更換成動態壁紙 發布:2025-01-20 01:40:27 瀏覽:705
安卓微信簽名在哪裡修改 發布:2025-01-20 01:25:31 瀏覽:109
安卓電腦管家怎麼恢復出廠設置 發布:2025-01-20 01:24:06 瀏覽:313
qt編譯sqlite庫 發布:2025-01-20 01:22:30 瀏覽:525
360攝像頭存儲設置 發布:2025-01-20 01:16:01 瀏覽:538
js防緩存 發布:2025-01-20 01:15:47 瀏覽:495
編程生日卡 發布:2025-01-20 01:15:14 瀏覽:206
android備忘錄源碼 發布:2025-01-20 01:06:32 瀏覽:455
怎麼禁用aspx緩存 發布:2025-01-20 01:00:50 瀏覽:688