VxWorks网络系统(1) -- socket打开套接字函数

 
VxWorks网络系统(1) -- socket打开套接字函数
 
       int m_socket;
 
// Open a socket
       m_socket = socket(AF_INET, SOCK_STREAM, 0);
 
第一个参数 domain 说明我们网络程序所在的主机采用的通讯协族 (AF_UNIX AF_INET ).
AF_UNIX 只能够用于单一的 Unix
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 VxWorks 套接字使用例子,用于在本地机器上创建一个 TCP 服务器: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <netinet/in.h> #include <netinet/tcp.h> #include <arpa/inet.h> #include <sys/types.h> #include <sys/socket.h> #include <unistd.h> #define PORT_NUM 8080 #define BUF_SIZE 1024 void handle_client(int client_socket) { char buf[BUF_SIZE]; memset(buf, 0, sizeof(buf)); int n; while ((n = read(client_socket, buf, sizeof(buf))) > 0) { printf("Received message: %s\n", buf); write(client_socket, buf, n); memset(buf, 0, sizeof(buf)); } close(client_socket); } int main() { int server_socket = socket(AF_INET, SOCK_STREAM, 0); if (server_socket < 0) { perror("Failed to create socket"); exit(EXIT_FAILURE); } int option = 1; if (setsockopt(server_socket, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option)) < 0) { perror("Failed to set socket option"); exit(EXIT_FAILURE); } struct sockaddr_in server_addr = {0}; server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(PORT_NUM); if (bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) { perror("Failed to bind socket to address"); exit(EXIT_FAILURE); } if (listen(server_socket, 5) < 0) { perror("Failed to listen for connections"); exit(EXIT_FAILURE); } printf("Waiting for connections...\n"); struct sockaddr_in client_addr = {0}; socklen_t client_addr_len = sizeof(client_addr); while (1) { int client_socket = accept(server_socket, (struct sockaddr *)&client_addr, &client_addr_len); if (client_socket < 0) { perror("Failed to accept connection"); exit(EXIT_FAILURE); } printf("Accepted connection from %s:%d\n", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port)); handle_client(client_socket); } return 0; } ``` 这个例子创建了一个 TCP 服务器,绑定到本地机器的 8080 端口,然后等待客户端连接。一旦连接建立,服务器会接收客户端发送的消息并将其原封不动地发送回客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值