[root@liumengli net]# cat client1.c
#include "/programe/net/head.h"
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char ** argv) {
int sockfd, n;
int my;
char buf[100];
struct sockaddr_in servaddr;
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("create socket error\n");
exit(1);
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(atoi(argv[2]));
if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) < 0) {
printf("inet_pton error\n");
exit(1);
}
if((my = connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))) < 0) {
printf("connect error\n");
exit(1);
}
n = read(sockfd, buf, 100);
buf[n] = '\0';
printf("%s\n", buf);
printf("%d\n", my);
getchar();
exit(0);
}
[root@liumengli net]# cat head.h
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "netdb.h"
[root@liumengli net]# cat server1.c
#include "/programe/net/head.h"
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char ** argu) {
int listenfd, connfd;
struct sockaddr_in servaddr;
char buf[] = "hello world";
int n;
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(atoi(argu[1]));
bind(listenfd, (struct socket_addr *)&servaddr, sizeof(servaddr));
listen(listenfd, n);
for(;;) {
connfd = accept(listenfd, (struct socket_addr *)NULL, NULL);
write(connfd, buf, strlen(buf));
}
}
unix网络编程最简单的例子,这里不做注释了,后面几篇将围绕这个做详细介绍。
分享到:
相关推荐
程序说明:因为时间仓促本程序功能较为简单,本身只实现了在局域网里面的功能,另外在运行的时候作为服务器的一段必须关掉Windows防火墙! ---------------------------------------------------------------------...
4)题目:简单的客户/服务器程序设计与实现 实验目的及要求: 1、熟悉Microsoft Visual Studio 2008编程环境。 2、了解TCP与UDP协议,以及它们之间的区别。 3、了解客户/服务器模型原理。 4、熟悉Socket编程原理,...
2.服务器程序 3.测试用客户程序 4.利用I0复用替代多进程的并发服务器…… 5.用无线网络测试上述程序 十.系统时间的实现. 十一。关于进程的体会 1.进程间不共享变量 2.进程通信——信号的使用 3.防止僵死进程。 第四...
分区,在使用一段时间后,决定在这台机器上安装活动目录服务(Active Directory),但是系统提示要使用 NTFS分区,请在下列选项中选择最合理的解决方案。 A.格式化磁盘,重新安装操作系统,然后在安装程序让用户...
如果没有指定,默认为named.stats在服务器程序的当前目录中 (5) memstatistics-file "/var/named/data/named_mem_stats.txt"; 服务器输出的内存使用统计文件的路径名如果没有指定,默认值为named.memstats。 注意:...
Administration 中说明了 Xen 客户机的安装,该文档在已安装系统中以及第一张 CD 或 DVD 上提供。 1.2 引导方法 根据所使用的硬件,在安装 SUSE Linux Enterprise Server 之前的第一个引导过 程中,以下引导方法可用...
5.2 怎样在程序里获得一个空指针? . . . . . . . . . . . . . . . . . . . 21 5.3 用缩写的指针比较“if(p)” 检查空指针是否可靠?如果空指针的内 部表达不是0 会怎么样? . . . . . . . . . . . . . . . . . . . ...
第1章数据库基础......................................................................................................................................1 1.1 基本概念........................................
26.3.1 初始的客户-服务器协议 298 26.3.2 客户中断键 299 26.4 Telnet协议 302 26.4.1 NVT ASCII 302 26.4.2 Telnet命令 302 26.4.3 选项协商 303 26.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或...
若没 有准备好,发送服务器便会等待,并在一段时间后继续与接收方邮件服务器联 系。这种方式在Internet上称为"存储——转发"方式。POP3和IMAP4可允许E- mail客户向某一SMTP服务器发送电子邮件,另外,也可以接收来自...
1.本地代码好好的,放服务器上运行一段时间后,IIS服务突然占用 w3wp.exe CPU突然100% ,不得不回收应用程序池,如果哪次回收晚了,被客户发现,后果很痛苦~ 2.你的w3wp.exe 内存高居不下 并且逐步上升 3.cpu很低,内存也很...
CH1 操作系统概论............................................................................................................................1 1.1 操作系统概观.............................................
简单的聊天应用程序示例。动机该代码无意在生产环境中使用,并且主要出于个人教育目的而编写。 因此,构建管道和开发环境可能对于当前项目的规模而言是过大的,但是可以用作具有类似目标的大型项目的起始模板。...
11610.1 RThread类 11710.2 线程优先级 11910.3 停止一个运行的线程 12110.4 线程间数据传递 12410.5 异常处理 12610.6 进程 12610.7 小结 128第11章 客户机/服务器框架原理 12911.1 为什么会有...
2 客户服务器体系结构的测试 4. 3. 3 实时系统的测试 第5章 软件工程及测试的难点和ISA的相关解决 5. 1 新系统开发支持 5. 1. 1 支持新系统设计 5. 1. 2 减少故障和编码风险 5. 1. 3 帮助软件工程师解决调试...