udp server java_UDP ECHO server

/*

************************************************************************

* Filename: udpserver.c

* Description:

* Version: 1.0

* Created: 2011年05月05日 09时56分04秒

* Revision: none

* Compiler: gcc

* Author: wenhao (wh), hnrain1004@gmail.com

* Company: sunplusapp

* ***********************************************************************

*/

#include

<

stdio.h

>

#include

<

stdlib.h

>

#include

<

string

.h

>

#include

<

unistd.h

>

#include

<

sys

/

socket.h

>

#include

<

netinet

/

in

.h

>

#include

<

arpa

/

inet.h

>

int

main(

int

argc,

char

*

argv[])

{

int

sockfd;

struct

sockaddr_in bindAddr;

//

定义IPV4地址变量

unsigned

short

port

=

8000

;

//

设定初始端口

sockfd

=

socket(AF_INET,SOCK_DGRAM,

0

);

//

创建UDP套接字

bzero(

&

bindAddr,

sizeof

(bindAddr));

//

对套接字地址清0

bindAddr.sin_family

=

AF_INET;

//

IPV4族

bindAddr.sin_port

=

htons(port);

//

将主机端口转换为网络端口

bindAddr.sin_addr.s_addr

=

htonl(INADDR_ANY);

//

本地IP地址

bind(sockfd,(

struct

sockaddr

*

)

&

bindAddr,

sizeof

(bindAddr));

//

套接字和地址绑定

while

(

1

)

{

char

recvBuf[

2048

];

//

用于存放收到的数据

size_t recvLen;

struct

sockaddr_in cliAddr;

//

定义IPV4地址变量

size_t cliAddrLen

=

sizeof

(cliAddr);

recvLen

=

recvfrom(sockfd,recvBuf,

2048

,

0

,(

struct

sockaddr

*

)

&

cliAddr,

&

cliAddrLen);

//

用于将接收到的数据存放在recvBuf中,客户端地址存放在cliAddr中

printf(

"

client IP = %s\n

"

,inet_ntoa(cliAddr.sin_addr));

//

显示发送数据的IP地址

sendto(sockfd, recvBuf,recvLen,

0

,(

struct

sockaddr

*

)

&

cliAddr,cliAddrLen);

//

将接收到的数据发送给客户端.

}

return

0

;

}

https://www.cnblogs.com/hnrainll/category/297419.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值