环境
Cygwin+windows2003
说明:
服务端(Server)
#include <sys/types.h>
#include <sys/socket.h>
#include <time.h>
#include <netinet/in.h>
#include <stddef.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
int main(int argc,char **argv ){
int listenfd,connectfd;
struct sockaddr_in servaddr;
char buffer[4096];
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(13);//转换成网络字符顺序
bind(listenfd,(struct sockaddr *) &servaddr,sizeof(servaddr));
listen(listenfd,1024);
for (;;) {
connectfd=accept(listenfd,(struct sockaddr *)NULL,NULL);
ticks=time(NULL);
snprintf(buffer,sizeof(buffer),"-------%.24s----------",ctime(&ticks));
write(connectfd,buffer,strlen(buffer));
close(connectfd);
}
}
客户端(Client)
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
void birdprint(char *value,...){
printf("\r\nvalue=%s",value);
}
int main(int argc, char **argv)
{
argv[1]="127.0.0.1";
birdprint("------开始run------");
int sockfd, n;
char recvline[4096 + 1];
struct sockaddr_in servaddr;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13); /* daytime server */
inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
while ( (n = read(sockfd, recvline, 4096)) > 0) {
recvline[n] = 0; /* null terminate */
if (fputs(recvline, stdout) == EOF){
}
}
birdprint("------结束run------");
exit(0);
}
//注意如下转换
struct sockaddr_in servaddr;
(struct sockaddr *) &servaddr
struct sockaddr
{
unsigned short int sa_family;
char sa_data[14];
};
struct socketaddr_in
{
unsigned short int sin_family;
uint16_t sin_port;
struct in_addr sin_addr;
unsigned char sin_zero[8];
};
struct in_addr
{
uint32_t s_addr;
};
char array4w[2][3][4][5];
int i,j,k,l;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
for(k=0;k<4;k++)
for(l=0;l<4;l++)
array4w[i][j][k][l]=i*12+j*4+k+l;
[2][3][4][5]
{
{
{
0_0_0_0
0_0_0_1
0_0_0_2
0_0_0_3
0_0_0_4
},
{
0_0_1_0
0_0_1_1
0_0_1_2
0_0_1_3
0_0_1_4
},
{
0_0_2_0
0_0_2_1
0_0_2_2
0_0_2_3
0_0_2_4
},
{
0_0_3_0
0_0_3_1
0_0_3_2
0_0_3_3
0_0_3_4
}
},
{
{
0_1_0_0
0_1_0_1
0_1_0_2
0_1_0_3
0_1_0_4
},
{
0_1_1_0
0_1_1_1
0_1_1_2
0_1_1_3
0_1_1_4
},
{
0_1_2_0
0_1_2_1
0_1_2_2
0_1_2_3
0_1_2_4
},
{
0_1_3_0
0_1_3_1
0_1_3_2
0_1_3_3
0_1_3_4
}
},
{
{
0_2_0_0
0_2_0_1
0_2_0_2
0_2_0_3
0_2_0_4
},
{
0_2_1_0
0_2_1_1
0_2_1_2
0_2_1_3
0_2_1_4
},
{
0_2_2_0
0_2_2_1
0_2_2_2
0_2_2_3
0_2_2_4
},
{
0_2_3_0
0_2_3_1
0_2_3_2
0_2_3_3
0_2_3_4
}
}
},
{
{
{
1_0_0_0
1_0_0_1
1_0_0_2
1_0_0_3
1_0_0_4
},
{
1_0_1_0
1_0_1_1
1_0_1_2
1_0_1_3
1_0_1_4
},
{
1_0_2_0
1_0_2_1
1_0_2_2
1_0_2_3
1_0_2_4
},
{
1_0_3_0
1_0_3_1
1_0_3_2
1_0_3_3
1_0_3_4
}
},
{
{
1_1_0_0
1_1_0_1
1_1_0_2
1_1_0_3
1_1_0_4
},
{
1_1_1_0
1_1_1_1
1_1_1_2
1_1_1_3
1_1_1_4
},
{
1_1_2_0
1_1_2_1
1_1_2_2
1_1_2_3
1_1_2_4
},
{
1_1_3_0
1_1_3_1
1_1_3_2
1_1_3_3
1_1_3_4
}
},
{
{
1_2_0_0
1_2_0_1
1_2_0_2
1_2_0_3
1_2_0_4
},
{
1_2_1_0
1_2_1_1
1_2_1_2
1_2_1_3
1_2_1_4
},
{
1_2_2_0
1_2_2_1
1_2_2_2
1_2_2_3
1_2_2_4
},
{
1_2_3_0
1_2_3_1
1_2_3_2
1_2_3_3
1_2_3_4
}
}
}
分享到:
相关推荐
网络 92<br>8.1 TCP/IP网络概述 92<br>8.2 Linux中的TCP/IP网络层次结构 95<br>8.3 BSD套接字接口 96<br>8.4 INET的套接字层 97<br>8.4.1 创建BSD套接字 98<br>8.4.2 为INET BSD Socket绑定地址 99<br>8.4.3 建立...
<br>目录: <br>第1章 嵌入式系统的介绍 1<br>1-1 嵌入式系统概述 2<br>1-1-1 嵌入式系统的组成 3<br>1-1-2 典型的嵌入式系统 6<br>1-1-3 嵌入式系统的发展趋势 7<br>1-2 信息家电 9<br>1-2-1 信息家电的兴起 10<br...
CWSS: C++ Web Services Server<br><br>1. 目的: <br>利用C++语言的高效, 稳定和灵活性,创建一个通用的通讯平台; 服务器端以插件配置方式动态加入功能组件;<br>客户端以XML文本描述方式, 调用服务端功能组件的函数;...
Linux网络编程<br>很,又好学基础
CWSS: C++ Web Services Server<br><br>1. 目的: <br>利用C++语言的高效, 稳定和灵活性,创建一个通用的通讯平台; 服务器端以插件配置方式动态加入功能组件;<br>客户端以XML文本描述方式, 调用服务端功能组件的函数;...
### Linux网络编程核心知识点解析 #### 一、网络模型与协议概述 - **OSI七层模型**:从物理层到应用层,详述了数据在网络中的传输过程。 - **Internet模型**:简化了OSI模型,将网络分为四层:应用层、传输层、...
linux网络编程 pdf # Linux网络编程基础 Linux网络编程是指在Linux操作系统上开发网络应用程序的过程。它主要涉及到TCP/UDP协议以及select/poll/epoll等多路复用技术。 TCP/UDP协议是网络通信的基础,其中TCP协议...
1. 目的: <br>利用C++语言的高效, 稳定和灵活性,创建一个通用的通讯平台; 服务器端以插件配置方式动态加入功能组件;<br>客户端以XML文本描述方式, 调用服务端功能组件的函数; 服务端也同样以XML文本描述调用返回...
《Linux网络编程教程》这本书是Linux系统中进行网络编程的重要参考资料。它涵盖了广泛的知识点,旨在帮助读者理解和掌握如何在Linux环境下开发网络应用程序。以下是对这些主题的详细阐述: 1. **网络编程基础**:...
Linux网络编程是操作系统领域中的一个重要话题,特别是在服务器端软件开发中。这门技术涉及如何在Linux环境下编写程序,实现网络通信,包括TCP/IP协议栈、套接字编程、并发服务处理等多个方面。以下是对这个主题的...
1、Linux网络编程1——啥叫原始套接字 2、Linux网络编程2——原始套接字编程 3、Linux网络编程3——原始套接字实例:MAC头分析 4、Linux网络编程4——原始套接字实例:MAC地址扫描器 5、Linux网络编程5——IP数据报...
Linux网络编程是计算机网络领域的一个重要组成部分,主要涉及操作系统级别的编程技术,用于实现网络应用软件的开发。以下是关于Linux网络编程的一些核心知识点,从OSI模型、进程间通信、套接字编程、到安全性和高级...
linux 网络编程.pdf
《Linux网络编程》一书深入探讨了在网络环境中利用Linux操作系统进行高效编程的技术和理论,尤其适合于希望深入了解网络编程原理及实践的读者。本书不仅涵盖了网络编程的基础理论,还提供了丰富的示例代码,帮助读者...
1. **网络编程基础**:网络编程涉及到通过网络进行通信的软件设计。它涉及IP地址、端口号、协议(如TCP/IP、UDP)和数据传输。在Python中,这些概念可以通过内置的socket模块来实现。 2. **Python的socket模块**:...
Linux网络基础和网络编程...对于压缩包中的"01_Linux网络编程-网络基础-socket编程-高并发服务器.pdf"文档,可以作为进一步学习和研究的参考资料,它可能详细阐述了这些概念并包含实例代码,有助于读者深化理解和应用。
Linux 网络编程基础 Linux 网络编程是一种在 Linux 操作系统下进行网络通信的编程方式,通过使用套接字(socket)和各种网络函数来实现网络通信。在 Linux 系统中,网络编程可以分为客户端和服务器端两个部分,...
"Linux 环境下的网络编程" Linux 作为一个单一内核的操作系统,协议栈的实现嵌在系统内核中,本文分析了 TCP/IP 协议的基本原理以及 Linux 中的 TCP/IP 网络层次结构,重点介绍了 Linux 环境下的 socket 编程。 ...