一个tcpip的小例子

来源:互联网 发布:55寸电视 知乎 2017 编辑:程序博客网 时间:2024/06/16 03:17
#include <netinet/in.h>#include <sys/types.h>#include <sys/socket.h>#include <unistd.h>#include <string.h>#include <stdio.h>#define PORT_NUM 8888#define LOCALIP "192.168.1.2"int main() {  int listen_fd, conn_fd;  struct sockaddr_in server_addr, client_addr;  int client_len;  int len =  0;  char recv_buf[1024];  char send_buf[1024];  listen_fd = socket(AF_INET, SOCK_STREAM, 0);  if (listen_fd == -1) {    perror("Failed to socket ");    return -1;  }  memset(&server_addr, 0, sizeof(server_addr));  server_addr.sin_family = AF_INET;  server_addr.sin_port = htons(PORT_NUM);  server_addr.sin_addr.s_addr = htonl(INADDR_ANY); //  if (bind(listen_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {    perror("failed to bind");    return -1;  }  printf("now listen...\n");  if (listen(listen_fd, 10) == -1) {    perror("failed to listen");  }  while (1) {    memset(&client_addr, 0, sizeof(client_addr));    client_len = sizeof(client_addr);    printf("now accept...\n");    conn_fd = accept(listen_fd, (struct sockaddr *)&client_addr, &client_len);    if (conn_fd == -1) {      perror("failed to accept");      return -1;    }    memset(recv_buf, 0, sizeof(recv_buf));    printf("now recv...\n");    len = recv(conn_fd, recv_buf, sizeof(recv_buf), 0);    if (len == -1) {      perror("failed to recv");      return -1;    }    printf("recv from client is %s\n", recv_buf);    printf("now send...\n");    memset(send_buf, 0, sizeof(send_buf));    sprintf(send_buf, "hello, client tcp terminal test ");    len = send(conn_fd, send_buf, strlen(send_buf), 0);    if (len == -1) {      perror("failed to send");      return -1;    }    printf("send msg to client %s\n", send_buf);    close(conn_fd);  }  close(listen_fd);  return 0;}

#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <string.h>#include <stdio.h>#define PORT_NUM 8888#define LOCALIP "192.168.1.2"int main() {  int sock_fd;  unsigned short port;  in_addr_t addr_in;  struct sockaddr_in server_addr;  int len = 0;  char send_buf[1024];  char recv_buf[1024];  sock_fd = socket(AF_INET, SOCK_STREAM, 0);  if (sock_fd == -1) {    perror("failed to sock_fd");    return -1;  }  memset(&server_addr, 0, sizeof(server_addr));  server_addr.sin_family = AF_INET;  server_addr.sin_port = htons(PORT_NUM);  server_addr.sin_addr.s_addr = inet_addr("192.168.1.2");  if (connect(sock_fd, (struct sockaddr *)&server_addr, sizeof(server_addr))== -1) {    perror("failed to connect");    return -1;  }  memset(send_buf, 0, sizeof(send_buf));  sprintf(send_buf, "hello ! server terminal send test");  len = send(sock_fd, send_buf, strlen(send_buf), 0);  if (len == -1) {    perror("failed to send");    return -1;  }  memset(recv_buf, 0, sizeof(recv_buf));  printf("now recv...\n");  len = recv(sock_fd, recv_buf, sizeof(recv_buf), 0);  if (len == -1) {    perror("failed to recv");    return -1;  }  printf("receive msg: %s\n", recv_buf);  close(sock_fd);  return 0;}


原创粉丝点击