C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單回聲服務(wù)器
本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單的回聲服務(wù)器,供大家參考,具體內(nèi)容如下
新建echo_server.c
#include<stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <ctype.h>
#include <arpa/inet.h>
#define SERVER_PORT 666
int main(void){
? ? int sock;
? ? struct sockaddr_in server_addr;
? ? sock=socket(AF_INET,SOCK_STREAM,0);
? ? bzero(&server_addr,sizeof(server_addr));
? ? server_addr.sin_family=AF_INET;
? ? server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
? ? server_addr.sin_port=htons(SERVER_PORT);
? ? bind(sock,(struct sockaddr *)&server_addr,sizeof(server_addr));
? ? listen(sock,128);
? ? printf("等待客戶端的連接..\n");
? ? int done=1;
? ? while(done){
? ? ? ? struct sockaddr_in client;
? ? ? ? int client_sock;
? ? ? ? char client_ip[64];
? ? ? ? socklen_t client_addr_len;
? ? ? ? client_addr_len=sizeof(client);
? ? ? ? accept(sock,(struct sockaddr *)&client,&client_addr_len);
? ? ? ? printf("client ip:%s\n port :%d\n",
? ? ? ? ? ? ? ? inet_ntop(AF_INET,&client.sin_addr.s_addr,client_ip,sizeof(client_ip)),
? ? ? ? ? ? ? ? ntohs(client.sin_port));
? ? }
}打包生成可執(zhí)行文件
[root@localhost c++]# gcc echo_server.c ?-o echo_server.exe
啟動(dòng)服務(wù)器
[root@localhost c++]# ./echo_server.exe? 等待客戶端的連接..
telnet訪問(wèn)
[root@localhost ~]# telnet 127.0.0.1 666 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'.
服務(wù)器端打印
[root@localhost c++]# ./echo_server.exe? 等待客戶端的連接.. client ip:127.0.0.1 ?port :36156
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- c語(yǔ)言多進(jìn)程tcp服務(wù)器示例
- 基于C語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的Web服務(wù)器
- C語(yǔ)言Tinyhttpd服務(wù)器源碼剖析
- 利用C語(yǔ)言實(shí)現(xiàn)http服務(wù)器(Linux)
- C語(yǔ)言多線程服務(wù)器的實(shí)現(xiàn)實(shí)例
- 如何利用C語(yǔ)言實(shí)現(xiàn)最簡(jiǎn)單的HTTP服務(wù)器詳解
- 使用C語(yǔ)言來(lái)擴(kuò)展Python程序和Zope服務(wù)器的教程
- 基于C語(yǔ)言實(shí)現(xiàn)的TCP服務(wù)器的流程分析
相關(guān)文章
使用remalloc的注意事項(xiàng)說(shuō)明(必看篇)
下面小編就為大家?guī)?lái)一篇使用remalloc的注意事項(xiàng)說(shuō)明(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
利用Qt實(shí)現(xiàn)可擴(kuò)展對(duì)話框的示例代碼
可擴(kuò)展對(duì)話框通常用于用戶對(duì)界面有不同要求的場(chǎng)合。當(dāng)供高級(jí)用戶使用或需要更多信息時(shí),可通過(guò)某種方式的切換顯示完整對(duì)話窗體(擴(kuò)展窗體)。本文將用Qt實(shí)現(xiàn)可擴(kuò)展對(duì)話框,需要的可以參考一下2022-06-06
深入解讀C++ 內(nèi)聯(lián)函數(shù)inline|nullptr
內(nèi)聯(lián)函數(shù):用** inline 修飾的函數(shù)叫做內(nèi)聯(lián)函數(shù),編譯時(shí)C++編譯器會(huì)在調(diào)用的地方展開(kāi)內(nèi)聯(lián)函數(shù)**,這樣調(diào)用內(nèi)聯(lián)函數(shù)就需要?jiǎng)?chuàng)建棧楨,就提高效率了,這篇文章給大家介紹C++ 內(nèi)聯(lián)函數(shù)inline|nullptr的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2024-07-07
C語(yǔ)言詳細(xì)分析講解struct與union使用方法
最近開(kāi)始自學(xué)C語(yǔ)言,從最基礎(chǔ)部分的開(kāi)始學(xué)起。今天看書(shū)的時(shí)候注意到了struct和union似乎很像,除了名字不同,看起來(lái)幾乎沒(méi)有區(qū)別。<BR>既然C中定義了struct和union兩個(gè)關(guān)鍵字,那么它們肯定是有區(qū)別的,在查了一些資料之后我來(lái)總結(jié)一下他們的使用2022-04-04
C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運(yùn)算符講解
這篇文章主要介紹了C++程序的執(zhí)行順序結(jié)構(gòu)以及關(guān)系和邏輯運(yùn)算符講解,是C++入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09
C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)之鏈表實(shí)現(xiàn)代碼
這篇文章主要介紹了C語(yǔ)言 數(shù)據(jù)結(jié)構(gòu)之鏈表實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10
C語(yǔ)言遞歸實(shí)現(xiàn)線索二叉樹(shù)
這篇文章主要介紹了C語(yǔ)言遞歸實(shí)現(xiàn)線索二叉樹(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

