UNIX网络编程学习(8)--服务器端显示客户端的IP地址和端口号

原创 2012年03月25日 12:40:12
#include	"unp.h"
#include	<time.h>

int
main(int argc, char **argv)
{
	int					listenfd, connfd;
	socklen_t           len;
	struct sockaddr_in	servaddr,cliaddr;
	char				buff[MAXLINE];
	time_t				ticks;

	listenfd = Socket(AF_INET, SOCK_STREAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family      = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port        = htons(10086);	/* daytime server */

	Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));

	Listen(listenfd, LISTENQ);

	for ( ; ; ) {
	    len=sizeof(cliaddr);
		connfd = Accept(listenfd, (SA *) &cliaddr, &len);

		printf("connection from %s,port %d\n",
                Inet_ntop(AF_INET,&cliaddr.sin_addr,buff,sizeof(buff)),
                ntohs(cliaddr.sin_port));

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        Write(connfd, buff, strlen(buff));

		Close(connfd);
	}
}


其中,包裹函数Inet_ntop为:

//wraplib.c

/*
 * Wrapper functions for our own library functions.
 * Most are included in the source file for the function itself.
 */

#include	"unp.h"

const char *
Inet_ntop(int family, const void *addrptr, char *strptr, size_t len)
{
	const char	*ptr;

	if (strptr == NULL)		/* check for old code */
		err_quit("NULL 3rd argument to inet_ntop");
	if ( (ptr = inet_ntop(family, addrptr, strptr, len)) == NULL)
		err_sys("inet_ntop error");		/* sets errno */
	return(ptr);
}

void
Inet_pton(int family, const char *strptr, void *addrptr)
{
	int		n;

	if ( (n = inet_pton(family, strptr, addrptr)) < 0)
		err_sys("inet_pton error for %s", strptr);	/* errno set */
	else if (n == 0)
		err_quit("inet_pton error for %s", strptr);	/* errno not set */

	/* nothing to return */
}


 

unix网络基础-显示客户IP地址和端口号的时间获取服务器程序

显示客户IP地址和端口号的时间获取服务器程序 该服务器程序实现了显示客户的IP和端口号的功能。...
  • CSLQM
  • CSLQM
  • 2016年12月08日 21:44
  • 425

IP地址与端口号

在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由 器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP...
  • u012861978
  • u012861978
  • 2016年03月23日 15:25
  • 5294

UNIX环境编程-----Unix编程实例----获取本地主机IP地址等信息

转载自:http://blog.csdn.net/bailyzheng/article/details/7489656     ifaddrs结构...
  • H002399
  • H002399
  • 2015年11月26日 08:57
  • 1014

IP地址和端口号详细解析

IP地址是一个规定,现在使用的是IPv4,既由4个0-255之间的数字组成,在计算机内部存储时只需要4个字节即可。在计算机中,IP地址是分配给网卡的,每个网卡有一个唯一的IP地址,如果一个计算机有多个...
  • u013164357
  • u013164357
  • 2015年06月04日 16:20
  • 1516

《UNIX网络编程》第一章——一个简单的时间获取客户端/服务器程序

该程序为《UNIX网络编程》第一卷中第一章出现的程序, 该程序经过本人测试通过。 操作系统:CentOS 7 编译器:GCC 时间获取的服务器程序如下:   #include ...
  • xiaolong361
  • xiaolong361
  • 2016年09月10日 09:40
  • 630

获取请求ip与端口号

/*  * Copyright © 2009 www.lvmama.com. 景域旅游运营集团版权所有.  */ package com.lvmama.comm.user.utils; i...
  • jakeswang
  • jakeswang
  • 2016年12月20日 11:30
  • 1109

unix shell获取IP和修改IP

#!/bin/ksh #全局变量#已配置信息的网卡个数ETHNUM=0#网卡名称信息,多个网卡用#符号分隔ETHS=""#网卡IP/掩码/默认网关信息,用:符号分隔,多个网卡用#符号分隔ETHINF...
  • rariki
  • rariki
  • 2014年08月04日 09:49
  • 538

【Unix 网络编程】TCP 客户/服务器简单 Socket 程序

前面介绍了Socket 编程函数  在编写 Socket 程序之前还需要了解TCP连接是如何建立的。(参考资料《Unix 网络编程》) 建立一个 TCP 连接时会发生下述情形: 1. 服务器必须准备好...
  • yeswenqian
  • yeswenqian
  • 2014年03月20日 19:25
  • 1893

UNIX网络编程简单练习

// 客户端程序 #include #include #include #include #include #include #include int sockfd; const ch...
  • just_young
  • just_young
  • 2014年10月06日 00:49
  • 610

Java网络编程:ip地址和端口

1
  • LIZHONGPING00
  • LIZHONGPING00
  • 2017年03月21日 16:01
  • 497
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UNIX网络编程学习(8)--服务器端显示客户端的IP地址和端口号
举报原因:
原因补充:

(最多只允许输入30个字)