Linux系统基于TCP的回声(echo)服务器端/客户端(改写)

服务端是一个选代服务端,持续提供服务,同时只能为一个客户端提供服务。信息传输协议(V2.0):1字节字符串长度+字符串内容(长度小于255)信息传输协议(V3.0):4字节字符串长度+字符串内容(长度小于2^32)服务器端:#include <stdio.h>#include <stdlib.h>#include &amp
摘要由CSDN通过智能技术生成

服务端是一个选代服务端,持续提供服务,同时只能为一个客户端提供服务。
信息传输协议(V2.0):1字节字符串长度+字符串内容(长度小于255)
信息传输协议(V3.0):4字节字符串长度+字符串内容(长度小于2^32)

服务器端:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>

#define BUF_SIZE 1024
void error_handling(char *message);


int main(int argc, char* argv[]){
   
    int serv_sock, clnt_sock;
    char message[BUF_SIZE];
    int i,len;

    struct sockaddr_in serv_adr, clnt_adr;
    socklen_t clnt_adr_sz;

    if(argc != 2){
   
        printf("Usage : %s <port>\n", argv[0]);
        exit(1);
    }

    serv_sock = socket(PF_INET, SOCK_STREAM, 0);
    if(serv_sock == -1){
   
        error_handling("socket() error!");
    }

    memset(&serv_adr, 0, sizeof(serv_adr));
    serv_adr.sin_family = AF_INET;
    serv_adr.sin_addr.s_addr
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于创建基于TCP服务器/客户的指导。 首先,您需要了解一些基本概念和步骤: 1. TCP/IP协议:TCP/IP协议是一种常用的网络通信协议,用于控制网络上的数据传输。它是由两个协议组成的:TCP(传输控制协议)和IP(网际协议)。 2. 服务器服务器是指在网络上提供服务的计算机程序。服务器通常需要创建一个socket,监听客户的连接请求,并接受来自客户的请求,处理请求并返回响应。 3. 客户客户是指连接到服务器的计算机程序。客户通常需要创建一个socket,连接到服务器,并发送请求,等待服务器响应。 接下来,我们可以按照以下步骤创建一个基于TCP服务器/客户,用于收发文件: 1. 创建服务器socket:使用socket()函数创建一个新的socket,指定协议族(AF_INET表示IPv4)和socket类型(SOCK_STREAM表示流式套接字)。 2. 绑定服务器socket:使用bind()函数将socket与服务器地址(IP地址和口号)绑定起来。 3. 监听客户连接请求:使用listen()函数启动服务器socket监听客户连接请求。 4. 接受客户连接请求:使用accept()函数接受来自客户的连接请求,并创建一个新的socket用于与客户通信。 5. 接收客户发送的文件:使用recv()函数从客户接收文件数据,并写入到服务器的文件中。 6. 发送响应给客户:使用send()函数向客户发送一个响应,表示文件传输完成。 7. 关闭服务器socket:使用close()函数关闭服务器socket。 客户的步骤如下: 1. 创建客户socket:使用socket()函数创建一个新的socket,指定协议族(AF_INET表示IPv4)和socket类型(SOCK_STREAM表示流式套接字)。 2. 连接服务器:使用connect()函数连接到服务器,指定服务器地址(IP地址和口号)。 3. 打开要发送的文件:使用fopen()函数打开要发送的文件。 4. 发送文件数据给服务器:使用send()函数将文件数据发送给服务器。 5. 接收服务器的响应:使用recv()函数接收服务器的响应,判断文件是否传输完成。 6. 关闭客户socket:使用close()函数关闭客户socket。 以上是基于TCP服务器/客户的基本步骤,您可以根据自己的需求进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值