Hướng dẫn tự học lập trình socket (mạng) với c#

Lập trình mạng là gì?

Có bao giờ bạn thắc mắc những chương trình bạn viết ra hoạt động, giao tiếp thế làm sao trong mạng máy vi tính chưa? Hay dễ nắm bắt là làm cách nào để server của chúng ta có thể nói chuyện được với client?

Lập trình mạng là một trong những nhiệm vụ căn bạn dạng để trở nên tân tiến các ứng dụng. Một lịch trình mạng được viết ra để những chương trình trên các máy tính khác nhau hoàn toàn có thể truyền tin với nhau một cách công dụng và bình an cho dù bọn chúng được cài đặt lên trên mạng LAN, WAN hay mạng toàn cầu Internet, đó là điều căn bạn dạng đối với sự thành công của đa số hệ thống.

Bạn đang xem: Hướng dẫn tự học lập trình socket (mạng) với c#

Hãy cùng mình nghịc thử nhằm viết 1 lịch trình socket giao tiếp client với server đơn giản nhất!

Giới thiệu về Socket

SocKet là 1 trong những giao diện lập trình (API – Application Program Interface) vận dụng mạng thông qua giao diện này hoàn toàn có thể lập trình tinh chỉnh và điều khiển việc truyền thông giữa 2 vật dụng sử dụng những giao thức mức thấp như TCP,UDP… , hoàn toàn có thể tưởng tượng nó như một thiết bị media 2 chiều giống như như tệp tin, bọn họ gửi/nhận dữ liệu giữa 2 máy, tương tự như việc đọc ghi trên tệp tin.

Xem thêm: Cài Theme Có Folder __ Macosx Là Gì, Máy Nào Chạy Macos

Với quy mô khách nhà TCP

*

Bây giờ bọn họ sẽ bắt tay tìm hiểu cách làm cho và thực hành

Viết lịch trình phía server

Các bước để tạo lên 1 lịch trình phía server:

Tạo socket với hàm socket (int family, int type, int protocol) những tham số trong các số ấy theo máy tự là bọn họ giao thức, giao diện socket, đẳng cấp giao thức.Gán showroom cho socket bind (int sockfd, const struct sockaddr *sockaddr, socklen_t addrlen) những tham mốc giới hạn lượt là diễn đạt socket vừa tạo, con trỏ chỏ đến showroom socket, độ bự địa chỉChỉ định socket lắng nghe liên kết listen (int sockfd, int backlog) trong đó sockfd là miêu tả socket vừa tạo, backlog là con số tối đa những kết nối vẫn chờChờ/chấp nhận liên kết accept (int sockfd, struct sockaddr *cliaddr, socklen_t *addrlen) thứu tự có các tham số là miêu tả socket vừa tạo, con trỏ tới cấu trúc add socket của quy trình kết nối đến, độ lớn cấu trúc địa chỉThiết lập kết nối với máy chủ TCP connect (int sockfd, const struct sockaddr *servaddr, socklen_t addrlen)

Viết chương trình phía client

Các bước để tạo lên 1 lịch trình phía client

Tạo socket với hàm socket (int family, int type, int protocol) các tham số trong số ấy theo sản phẩm công nghệ tự là họ giao thức, kiểu dáng socket, loại giao thức.Connect tới add server với hàm connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)Đọc dữ liệu từ server với ghi vào trở nên buffer read( sock , buffer, 1024)

Sau trên đây mình sẽ đi vào thực hành với một requirement dễ dàng và đơn giản là:

Mô tả chương trình:

server mở công liên kết 8080client nhập showroom ip để liên kết với server qua cổng 8080server hiển thị showroom ip với cổng của client,người cần sử dụng nhập chuỗi kí tự bất kỳ từ bàn phímclient đọc chuỗi kí tự với gửi đến serverserver dìm tin nhắn từ client cùng trả về tin nhắn nhận được đã viết hoa những kí tự.client hiện thông báo từ serverlặp đến lúc client nhập”bye” thì đóng kết nối.

Code phía server

#include #include #include #include #include #include #include #define PORT 8080 int main(int argc, char const *argv<>) SO_REUSEPORT, &opt, sizeof(opt))) perror("setsockopt"); exit(EXIT_FAILURE); address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons( PORT ); //gan cong la 8080 // bind if (bind(server_fd, (struct sockaddr *)&address, sizeof(address))sin_addr, str_cli_ip, INET_ADDRSTRLEN); printf("ipclient: %s ", str_cli_ip ); char str_cli_port; printf("port: %d ", ntohs(ip_client->sin_port)); printf("Tin nhan ban nhan dc tu client: "); //read, doc du lieu gan vao bien valread tra ve so byte ma no doc duoc valread = read( new_socket, buffer, 1024); //viet hoa ToUp(buffer); //gan bien hello tra ve mang lại client la buffer domain authority viet hoa hello = &buffer; printf("%s ",buffer ); send(new_socket, hello, strlen(hello), 0 ); close(new_socket); return 0; } void ToUp( char *p ) while( *p ) *p=toupper( *p ); p++; Code phía client

#include #include #include #include #include #define PORT 8080 int main(int argc, char const *argv<>) { struct sockaddr_in address; int sock = 0, valread; struct sockaddr_in serv_addr; char *hello = "Hello from client"; char buffer<1024> = 0; char add<225>; int continu = 1; printf("Nhap dia bỏ ra server "); gets(add); //tao socket if ((sock = socket(AF_INET, SOCK_STREAM, 0)) sau khi build và run mình đang được kết quả đó như sau

*

Đó là chạy thử về 1 công tác socket sử dụng ngôn từ C đơn giản nhất để khám phá về lập trình mạng, cảm ơn các bạn đã đọc nhé.