加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

[linux] C语言Linux系统编程-socket回声客户端

发布时间:2020-12-13 14:17:37 所属栏目:Linux 来源:网络整理
导读:回声客户端: 1. 2. #define BUF_SIZE 100 1.# 2.#define scanf("%s",bufSend); 1.scanf() 2. div class="cnblogs_code" #include .h> .h> BUF_SIZE 100 serv_sock = serv_addr, , (serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr

回声客户端:

1.

2.

#define BUF_SIZE 100

1.#

2.#define

scanf("%s",bufSend);

1.scanf()

2.

<div class="cnblogs_code">

#include <.h>.h>
 BUF_SIZE 100

         serv_sock =
        &serv_addr,,(serv_addr));  
        serv_addr.sin_family = AF_INET;  
        serv_addr.sin_addr.s_addr = inet_addr();  
        serv_addr.sin_port = htons();  
        bind(serv_sock,( sockaddr*)&serv_addr,
        listen(serv_sock,
        =  clnt_sock = accept(serv_sock,( sockaddr*)&clnt_addr,&    </span><span style="color: #0000ff"&gt;char</span> buffer[BUF_SIZE];  <span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;缓冲区</span>
    <span style="color: #0000ff"&gt;int</span> strLen = read(clnt_sock,buffer,BUF_SIZE);  <span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;接收客户端发来的数据</span>
    write(clnt_sock,<span style="color: #0000ff"&gt;sizeof</span><span style="color: #000000"&gt;(buffer));
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;关闭套接字</span>

<span style="color: #000000"> close(clnt_sock);
close(serv_sock);
<span style="color: #0000ff">return <span style="color: #800080">0<span style="color: #000000">;
}

echo_client.c

#include <.h> BUF_SIZE 100 sock = socket(AF_INET, &serv_addr,(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = inet_addr(); serv_addr.sin_port = htons(); connect(sock, </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;回声客户端</span> <span style="color: #0000ff"&gt;char</span><span style="color: #000000"&gt; bufSend[BUF_SIZE]; printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;输入字符串: </span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;); scanf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;%s</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,bufSend); write(sock,bufSend,</span><span style="color: #0000ff"&gt;sizeof</span><span style="color: #000000"&gt;(bufSend)); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;读取服务器传回的数据</span> <span style="color: #0000ff"&gt;char</span> buffer[<span style="color: #800080"&gt;40</span><span style="color: #000000"&gt;]; read(sock,</span><span style="color: #0000ff"&gt;sizeof</span>(buffer)-<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;服务器返回: %sn</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,buffer); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;关闭套接字</span>

<span style="color: #000000"> close(sock);
<span style="color: #0000ff">return <span style="color: #800080">0<span style="color: #000000">;
}

效果:

使用while(1) 让代码进入死循环,一直监听客户端的请求

echo_server.c

( clnt_sock = accept(serv_sock,& </span><span style="color: #0000ff"&gt;char</span> buffer[BUF_SIZE]; <span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;缓冲区</span> <span style="color: #0000ff"&gt;int</span> strLen = read(clnt_sock,BUF_SIZE); <span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;接收客户端发来的数</span>

<span style="color: #000000">据
write(clnt_sock,<span style="color: #0000ff">sizeof<span style="color: #000000">(buffer));
<span style="color: #008000">//<span style="color: #008000">关闭套接字
<span style="color: #000000"> close(clnt_sock);
}

echo_client.c

( sock = socket(AF_INET, &serv_addr,(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = inet_addr(); serv_addr.sin_port = htons(); connect(sock, </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;回声客户端</span> <span style="color: #0000ff"&gt;char</span><span style="color: #000000"&gt; bufSend[BUF_SIZE]; printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;输入字符串: </span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;); scanf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;%s</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,bufSend); write(sock,</span><span style="color: #0000ff"&gt;sizeof</span><span style="color: #000000"&gt;(bufSend)); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;读取服务器传回的数据</span> <span style="color: #0000ff"&gt;char</span> buffer[<span style="color: #800080"&gt;40</span><span style="color: #000000"&gt;]; read(sock,</span><span style="color: #0000ff"&gt;sizeof</span>(buffer)-<span style="color: #800080"&gt;1</span><span style="color: #000000"&gt;); printf(</span><span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;服务器返回: %sn</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;,buffer); </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt;关闭套接字</span> close(sock);}</pre>

?效果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读