Linux网络编程
文章平均质量分 51
kongds1999
学到老活到老,学不到老你还想活到老
展开
-
大端和小端字节序(易混淆)
在说明大端和小端字节序之前,我们需要记住的几点:① 在描述大小端字节序的时候,我们统一是从左向右表示计算机地址递增,如下是表示连续的四字节地址空间:② 大端表示人类思维模式,小端表示计算机思维模式,“人大于计算机,所以人是大端”(这样会不会好记一些),大端和小端存在必要就是为了方便人和计算机之间的数据表示,就好像高级语言和机器语言一样,人可以轻易读懂高级语言,但计算机要读懂它,需要先将其转换为机器语言。③ 地址空间是以一个字节为单位组织的,所以在存储字节的时候也是根据1字节为单位。现在来看一个原创 2021-06-24 11:41:56 · 575 阅读 · 1 评论 -
管道通信
在了解管道之前,至少我们要了解的进程的概念。而管道就是用于进程间通信的一种方式。先说结论:所谓管道,是指用于连接一个读进程和一个写进程以实现他们之间的通信的一个共享文件。我们需要了解一下以下几个概念①共享存储是在通信的进程之间存在一块可直接访问的共享空间,如下图,也就是说,通信双方的两个进程都可以访问这块空间②消息传递我们这里说的是基于间接通信方式的消息传递(邮件),就是也就是发送进程把消息发送到某个中间实体,接收进程再从中间实体取得信息。管道通信了解了上面两个基本概念,我们再说原创 2021-03-06 19:36:17 · 5381 阅读 · 2 评论 -
有关gethostbyname()的不可重入
最近发现很多小伙伴在自学Linux网络编程这本书,中间可能会有许多不解的疑惑,书上有些地方讲解的也不是很透彻,恰巧之前选修过这门课,今天分享一个遇到的问题。首先请看书的229页,8.4.4 函数gethostbyname不可重入的例子先看下这段代码:#include <netdb.h>#include <string.h>#include <stdio.h>#include <arpa/inet.h>int main(int argc,原创 2021-01-25 16:08:20 · 461 阅读 · 0 评论 -
Linux+C实现简易聊天室
最近Linux网络程序设计课程大作业,要求设计一个简易的网络聊天室,功能如下:网络聊天室功能要点:(1)用户管理:注册、修改密码;(2)聊天室管理:用户登录、创建聊天室、设置聊天室密码;(3)聊天管理:在同一聊天室里,用户所发送的消息每位在线用户都可以收到,也可以单独给某位在线用户发消息;可以查询聊天室在线用户信息;(4)系统管理:显示所有在线用户;显示所有聊天室;给所有在线用户群发消息;提供命令帮助,让用户了解命令的格式:例如 send user1 message1表示给用户user1发.原创 2020-06-21 20:49:03 · 3243 阅读 · 6 评论 -
UDP网络编程-实现请求时间的客户端与服务器程序
实现网络时间服务功能,要求:(建议采用UDP协议)客户端程序向服务器程序发送时间请求消息“What time is it now?”,在收到服务器发来的时间以“yyyy-mm-dd hh:mm:ss”的格式打印在屏幕上。 服务器程序能够并发(轮询)处理多个客户端的时间服务请求,并将服务器的系统时间发送给客户端,并在屏幕上打印出请求时间服务客户端的IP地址。环境:Vmare15+ Ubuntu18+codeblocks/*服务端程序*/#include <sys/types.h&.原创 2020-06-07 10:57:02 · 1123 阅读 · 0 评论 -
TCP网络编程
环境:VMware15+ubuntu18.04.4+codeblocks题目:编写程序实现客户端程序输入一段文字,服务端程序将文字里面所有小写字母转换为大写字母后返回给客户端,并将文字在客户端输出。/*tcp_process.c*/#include <stdio.h>#include <string.h>/*客户端的处理过程*/void proc...原创 2020-04-06 16:02:24 · 296 阅读 · 0 评论 -
Linux网络编程--编写一个程序,开启2个进程,一个进程负责输出字符A,一个进程负责输出字符B,要求输出结果为ABABAB… 依次递推。
题目:编写一个程序,开启2个进程,一个进程负责输出字符A,一个进程负责输出字符B,要求输出结果为ABABAB… 依次递推。环境:Ubuntu+Codeblocks首先是我写的:#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid...原创 2020-03-28 15:24:37 · 1026 阅读 · 0 评论