sách gpt4 ăn đã đi

C++ triển khai phòng trò chuyện trực tuyến dựa trên socket đa luồng

In lại Tác giả: qq735679552 Thời gian cập nhật: 27-09-2022 22:32:09 25 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN C++ này triển khai phòng chat trực tuyến dựa trên socket đa luồng được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

Ví dụ trong bài chia sẻ với các bạn code cụ thể để triển khai phòng chat trực tuyến dựa trên socket multi-threading trong C++ để các bạn tham khảo.

1. Thực hiện sơ đồ.

C++ triển khai phòng trò chuyện trực tuyến dựa trên socket đa luồng

2. Máy chủ phòng trò chuyện: TCP_Server_Chat.cpp.

#include  //Tệp tiêu đề của winock2 #include #pragma comment(lib, "ws2_32.lib")using namespace std;//Chức năng xử lý luồng của stdcall DWORD WINAPI ThreadFun(LPVOID lpThreadParameter);int main(){ WSADATA wd; if(WSAStartup(MAKEWORD(2,2), &wd) != 0) { cout << "WSAStartup Error:" << WSAGetLastError() << endl; return 0; } // 1. Tạo một ổ cắm phát trực tuyến SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); = INVALID_SOCKET) { cout << "lỗi ổ cắm:" << WSAGetLastError() << endl; return 0; } // 2. Liên kết cổng và ip sockaddr_in addr; addr, 0, sizeof(sockaddr_in)); s_addr = inet_addr("127.0.0.1"); int len ​​​​= sizeof(sockaddr_in); if(bind(s, (SOCKADDR*)&addr, len) == SOCKET_ERROR) { cout << "bind Error:" << WSAGetLastError() << endl; // 3. Listen(s,5); // Luồng chính lặp lại để nhận kết nối của client while(true) { sockaddr_in addrClient; len = sizeof(sockaddr_in); // 4. Chấp nhận thành công và trả về Socket SOCKET đang giao tiếp với máy khách c = Accept(s, (SOCKADDR*)&addrClient, &len); một luồng và chuyển vào socket HANDLE giao tiếp với máy khách hThread = CreateThread(NULL, 0, ThreadFun, (LPVOID)c, 0, NULL); CloseHandle(hThread); // Đóng tham chiếu đến luồng } } // 6. Đóng (các) ổ cắm nghe; // Dọn dẹp môi trường winock2 WSACleanup(); 0 ;}DWORD WINAPI ThreadFun(LPVOID lpThreadParameter){ // 5. Giao tiếp với khách hàng, gửi hoặc nhận dữ liệu SOCKET c= (SOCKET)lpThreadParameter; cout << "Chào mừng" << c << "Vào phòng trò chuyện! " << endl; // Gửi dữ liệu char buf[100] = {0}; sprintf(buf,"Chào mừng %d đến phòng trò chuyện!",c); send(c,buf, 100, 0); // Vòng lặp Nhận dữ liệu khách hàng int ret=0; do { char buf2[100] = {0}; ret = recv(c, buf2, 100, 0); " Đã nói: " << buf2 << endl; } while (ret!=SOCKET_ERROR && ret!=0); cout << c << "Đã rời khỏi phòng trò chuyện! "; trả về 0;}

Khởi động máy chủ phòng trò chuyện:

C++ triển khai phòng trò chuyện trực tuyến dựa trên socket đa luồng

3. Ứng dụng khách của phòng trò chuyện: TCP_Client_Chat.cpp.

#include//Tệp tiêu đề của winock2 #includeusing namespace std;//Đừng quên, liên kết lib của dll#pragma comment(lib, "ws2_32.lib")int main() { // Tải môi trường winock2 WSADATA wd; if (WSAStartup(MAKEWORD(2, 2), &wd) != 0) { cout << "Lỗi WSAStartup:" << GetLastError() << endl; return 0; } //1. Tạo ổ cắm phát trực tuyến SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); lỗi ổ cắm:" << GetLastError() << endl; return 0; } //2. Máy chủ liên kết sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(8000); addr.sin_addr.s_addr = inet_addr("127.0.0.1"); (kết nối (s, (SOCKADDR*)&addr, len) == SOCKET_ERROR) { cout << "connect error:" << GetLastError() << endl; return 0; } //3 Nhận tin nhắn từ máy chủ char buf[100] = { 0 }; , 0 ); cout << buf << endl //3 Gửi tin nhắn đến máy chủ bất cứ lúc nào int ret = 0; cout << "Xin vui lòng nhập nội dung trò chuyện:"; cin >> buf; ret = send(s, buf, 100, 0); } while (ret != SOCKET_ERROR&& ret != 0); socket Word closesocket; //Dọn dẹp môi trường winock2 WSACleanup();

Bắt đầu 2 khách hàng.

C++ triển khai phòng trò chuyện trực tuyến dựa trên socket đa luồng

Trên đây là toàn bộ nội dung bài viết này hi vọng nó sẽ giúp ích cho việc học của mọi người và cũng mong mọi người ủng hộ mình.

Link gốc: https://tangxing.blog.csdn.net/article/details/115594426.

Cuối cùng, bài viết này về cách triển khai phòng trò chuyện trực tuyến dựa trên đa luồng socket trong C++ kết thúc tại đây. Nếu bạn muốn biết thêm về cách triển khai phòng trò chuyện trực tuyến trong C++ dựa trên đa luồng socket, vui lòng tìm kiếm các bài viết CFSDN hoặc. tiếp tục duyệt các bài viết liên quan, tôi hy vọng tất cả các bạn sẽ ủng hộ blog của tôi trong tương lai! .

25 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress