Tôi cần nhanh chóng triển khai giải pháp máy chủ/khách hàng C hoặc C++ TCP rất nhỏ. Điều này chỉ đơn giản là để chuyển nghĩa đen là một mảng các byte từ một máy tính khác - không cần phải có khả năng mở rộng/quá phức tạp. Đơn giản càng tốt. Nhanh chóng và bẩn nếu bạn có thể.Máy chủ và máy khách TCP C hoặc C++ đơn giản là gì?
Tôi cố gắng để sử dụng mã từ hướng dẫn này, nhưng tôi không thể có được nó để xây dựng sử dụng g ++ trong Linux: http://www.linuxhowtos.org/C_C++/socket.htm
Nếu có thể, tôi muốn tránh thư viện của bên thứ 3, khi hệ thống tôi đang chạy trên này là khá hạn chế. Đây phải là C hoặc C++ vì ứng dụng hiện tại đã được triển khai.
Nhờ EMG-2 's câu trả lời, tôi quản lý để thực hiện nêu trên mẫu mã tương thích với C++ sử dụng các bước sau:
Thêm các tiêu đề cho cả client và server:
#include <cstdlib>
#include <cstring>
#include <unistd.h>
Trong server.c, thay đổi loại clilen thành socklen_t.
int sockfd, newsockfd, portno/*, clilen*/;
socklen_t clilen;
Trong client.c, thay đổi dòng sau:
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) { ... }
Để:
if (connect(sockfd,(const sockaddr*)&serv_addr,sizeof(serv_addr)) < 0)
Cảm ơn - Tôi đã tìm thấy một mẫu (http://beej.us/guide/bgnet/output/html/multipage/clientserver.html#simpleserver) nhưng tôi không chắc chắn nếu nó quá mức cần thiết, tôi có thực sự cần tất cả mã đó không? –
@ nickbolton2705: Có thể là có. Mã của Beej có lỗi xử lý bao gồm, đó là một phần lý do tôi thích nó rất nhiều. Cũng lưu ý rằng máy chủ hỗ trợ nhiều kết nối đồng thời, và IPv4 và IPv6. –
Vâng, điều này sẽ là tuyệt vời cho một giải pháp thanh lịch - Tôi nhận thấy một trong những tính năng là serialization, mà có thể hữu ích cho tôi, tôi nên cần phải thực hiện điều này đúng tại một số điểm. –