快速理解Linux下网络编程基础
来源:互联网 发布:ubuntu 16.04 升级 编辑:程序博客网 时间:2024/06/03 22:48
故事的发生是这样的:
大魔王 (@大雪山(INET) ---黑魔洞(STREAM)----坐标192.168.0.xxx)
从长安城中抓走了美丽的公主 ,绑架到了自己的洞穴中 bind
然后,一个勇士(Mario)马利奥 前去解救公主。
大魔王在洞中等着,它是Server 马利奥向洞穴进发,它为 clients
好了,我们开始:(为了在IDE下代码提示,我们可以先加上 #include <winsock2.h>)
// 初始化世界副本(定义本世界规则:本世界IP,使用TCP协议)
struct sockaddr_in addr; //构建大雪山-黑魔洞地址
addr.sin_family = AF_INET;//魔王老家地址以(IP)形式表示
addr.sin_port = htons(8081); //魔王的洞口是山上第8081个洞
addr.sin_addr.s_addr = inet_addr(argv[1]); //魔王洞的IP地址
connect(st,(struct sockaddr *)&addr,sizeof(addr));
//勇士通过地图的指引,找到了洞口外
//“开门!我来也!”
//......
//......
//.......
//......
//......
//.......
//终于开门了~
//哎呀,怪物来了,我接招~
char s[1024];
if(recv(st,s,sizeof(s),0)>0)
{
printf("recv:%s\n",s);
}
// 英雄1 出师未捷身先死....
//客户端关闭世界副本
close(st);
int st = socket(AF_INET, SOCK_STREAM, 0);
// 初始化世界副本并编号,防止串错了世界
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(8081);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
//勇士啊,你从何处来?都可以,来吧!
bind(st,(struct sockaddr *)&addr,sizeof(addr));
//公主被绑架(当前世界,魔王洞在迷宫深处-没有指针(地图)找不到,地图大小
listen(st,100); //魔王通过顺风耳听着,只要来的勇士不超过它的要求,尽管来!
//哈哈,来了一个送死的所谓勇士,让他进来闯关吧!
//哦,对了
int client_st = 0; //给它一个编号
struct sockaddr_in client_addr; //以它从哪里来做记录!
socklen_t len = sizeof(client_addr); //地址好长啊,看看有多长?
void *p = &client_addr; //记地址太累了,拿着箭头指着就行了
//好了,魔王把你的信息已经记录下来了,不杀无名之辈啊
accept(st,(struct sockaddr *)&client_st,&len);
//现在,应你的要求,给你开门,来送死吧~~~~哈k~
//先来个小测试~
char s[1024]="黑鸭子,go~"
send(client_st,s,strlen(s),0);
printf("不行啊,这就挂了!\n");
close(client_st); //回去找个厉害点的吧~
//今天累了,英雄也杀掉不少了,没人再来了
close(st); //关闭世界副本
0 0
- 快速理解Linux下网络编程基础
- linux网络编程和快速理解epoll
- linux 下网络编程基础
- Linux下的网络编程API基础
- linux网络编程基础
- Linux 网络编程基础
- Linux网络编程基础
- Linux网络编程基础
- linux 网络编程基础
- Linux网络编程基础
- linux网络编程基础
- linux网络编程基础
- Linux网络编程基础
- Linux网络编程基础
- Linux网络编程基础
- Linux 网络编程基础
- Linux 网络编程基础
- linux网络编程基础
- Oracle 监听lsnrctl命令启动报错(TNS-12537,TNS-12560,TNS-00507)
- C++使用memset时候注意
- linux 命令系列之 字符截取命令 cut(54)
- 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表
- 关于Android在线支付Alipay(支付宝)开发的经验分享
- 快速理解Linux下网络编程基础
- PHP中单引号和双引号的区别
- IAR for AVR设置生成HEX文件
- CPP 1373 Easy as A+B(冒泡排序)
- php中的单引号、双引号和转义字符
- 集合collection
- springMVC的配置文件名在web.xml中如何定义
- PHP 单引号与双引号的区别
- POJ_3258_River Hopscotch_二分搜索