TCP通信


客户端的代码:
1
#include"utili.h" 2 3 int main() 4 { 5 int sockCli = socket(AF_INET, SOCK_STREAM, 0); 6 if(sockCli == -1) 7 Perror("socket"); 8 struct sockaddr_in addrSer; 9 addrSer.sin_family = AF_INET; 10 addrSer.sin_port = htons(SERVER_PORT); 11 addrSer.sin_addr.s_addr = inet_addr(SERVER_IP); 12 13 socklen_t len = sizeof(struct sockaddr); 14 int res = connect(sockCli, (struct sockaddr*)&addrSer, len); 15 if(res == -1) 16 { 17 printf("Client Connect Server Fail.\n"); 18 exit(1); 19 } 20 else 21 { 22 printf("Client Connect Server OK.\n"); 23 } 24 25 char sendbuf[MAX_BUFFER_SIZE]; 26 char recvbuf[MAX_BUFFER_SIZE]; 27 while(1) 28 { 29 recv(sockCli, recvbuf, MAX_BUFFER_SIZE, 0); 30 printf("Ser:>%s\n",recvbuf); 31 32 printf("Cli:>"); 33 scanf("%s",sendbuf); 34 send(sockCli, sendbuf, strlen(sendbuf)+1, 0); 35 } 36 37 close(sockCli); 38 return 0; 39 }

共用的头文件;

 1 #pragma once
 2 
 3 #include<stdio.h>
 4 #include<unistd.h>
 5 #include<string.h>
 6 #include<stdlib.h>
 7 #include<netinet/in.h>
 8 #define SERVER_IP   "127.0.0.1"
 9 #define SERVER_PORT 9090
10 
11 #define MAX_BUFFER_SIZE 255
12 #define LISTEN_QUEUE_SIZE 5
13 void Perror(char *str)
14 {
15     perror(str);
16     exit(1);
17 }

服务器端的代码:

 1 #include"utili.h"
 2 
 3 int main()
 4 {
 5     int sockSer = socket(AF_INET,SOCK_STREAM,0);
 6     if(sockSer == -1)
 7         Perror("socket");
 8     struct sockaddr_in addrSer,addrCli;
 9     addrSer.sin_family = AF_INET;
10     addrSer.sin_port = htons(SERVER_PORT);
11     addrSer.sin_addr.s_addr  = inet_addr(SERVER_IP);
12     
13     socklen_t len = sizeof(struct sockaddr);
14     int res = bind(sockSer,(struct sockaddr*)&addrSer,len);
15     if(res == -1)
16          Perror("beind");
17 
18      res = listen(sockSer,LISTEN_QUEUE_SIZE);
19      if(res == -1)
20          Perror("listen");
21 
22       int sockConn;
23       sockConn = accept(sockSer,(struct sockaddr*)&addrCli,&len);
24       if(sockConn == -1)
25       {
26             printf("Server Accept Client Connect Fail.\n");
27              exit(1);
28        }
29        else
30        {
31             printf("Server Accept Client Connect OK.\n");
32        }
33 
34        char sendbuf[MAX_BUFFER_SIZE];
35        char recvbuf[MAX_BUFFER_SIZE];
36        while(1)
37        {
38            printf("Ser:>");
39            scanf("%s",sendbuf);
40            send(sockConn,sendbuf,strlen(sendbuf)+ 1,0);
41 
42            recv(sockConn,recvbuf,MAX_BUFFER_SIZE,0);
43            printf("Cli:>%s\n",recvbuf);
44         }
45         close(sockSer);
46         return 0;
47 }

 

转载于:https://www.cnblogs.com/xumiao1314/p/7365054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值