网络编程
文章平均质量分 82
MMT小小新手
这个作者很懒,什么都没留下…
展开
-
用TCP实现tftp的下载上传功能
刚学了TCP,现在对其进行应用总结一下,用它来实现一下linux里面tftp的上传下载功能,而且还能看到想要下载目录里面的内容,这一点上你tftp要方便多了。如果大家看到里面有哪些不足的话请指点指点小弟: 客户端代码:#include #include #include #include #include /* See NOTES */#inc原创 2013-08-17 11:45:59 · 898 阅读 · 0 评论 -
用UDP协议实现最简单的“聊天室”功能
小弟新人一枚,刚刚学习了网络编程的基础,就试着用UDP协议实现一个简单的“聊天室”,在写代码过程中也是各种出错,还好最终是实现了各种最基本的功能,在此记录一下当时写代码时的各种问题,希望跟我一样的新人能够避免某些常见问题,同时也希望能够得到大神的指点,看看代码还有哪里可以更加精简,更加效率。 首先我先来介绍一下实现这个聊天室的服务器端和客户端的大概流程,一会会把流程图传上来。原创 2013-08-17 11:32:46 · 12623 阅读 · 3 评论 -
wait和waitpid的区别
1、一个进程正常结束:(1)return(2)exit(3)_exit和_Exit(4)进程的最后一个线程使用return(5)进程的最后一个线程使用phread_exit2、一个异常进程结束:(1)abort(2)signal(3)cancellation request ,最后一个线程被取消3、当一个进程结束时,它的父进程需要知道它是如何结束的,于是需要原创 2013-08-11 10:50:10 · 928 阅读 · 0 评论 -
标准I/O详解
我们已经多次用到了文件,例如源文件、目标文件、可执行文件、库文件等,现在学习如何用C标准库对文件进行读写操作,对文件的读写也属于I/O操作的一种,本节介绍的大部分函数在头文件stdio.h中声明,称为标准I/O库函数。 fopen/fclose 在操作文件之前要用fopen打开文件,操作完毕要用fclose关闭文件。打开文件就是在操作系统中分配一些资源用于保存该文件的状态信息原创 2013-08-18 16:25:23 · 1298 阅读 · 0 评论 -
如何避免子进程成为僵尸程序
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD 信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill-9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始转载 2013-08-17 14:13:24 · 1057 阅读 · 0 评论 -
linux多线程编程 同步与互斥
——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2转载 2013-08-11 14:36:33 · 560 阅读 · 0 评论