Linux Socket编程 C
来源:互联网 发布:安装软件重启后没有了 编辑:程序博客网 时间:2024/05/22 16:43
最近看了一些网络编程的书籍,一直以来总感觉网络编程神秘莫测,其实网络编程入门还是很容易学的,下面这些代码是我在linux下编写的,已经运行过了,编译之后就可以运行了。有不足之处希望大家多多指出,共同 学习交流。
套接字是一种进程间的通信的方法,不同于以往介绍的进程间通信方法的是,它并不局限于同一台计算机的资源,例如文件系统空间,共享内存或者消息队列。套接字可以认为是对管道概念的扩展——一台机器上的进程可以使用套接字与另一台机器上的进程通信。因此客户与服务器可以分散在网络中。同一台机器上的进程间也可以用套接字通信。套接字是一种通信机制,客户/服务器系统既可以在本地单机上运行,也可以在网络中运行。套接字与管道的区别:它明确区分客户与服务器,可以实现将多个客户连接到一个服务器。
套接字的工作过程(服务器端):首先,服务器应用程序通过socket系统调用创建一个套接字,它是系统分配给该服务器进程的类似文件描述符的资源,不能与其他进程共享。其次,服务器进程使用bind系统调用给套接字命名。本地套接字的名字是linux文件系统的文件名,一般放在/tmp或者/usr/tmp 目录下。网络套接字的名字是与客户相连接的特定网络有关的服务标识符。此标识符允许linux将进入的针对特定端口号的连接转到正确的服务器进程。接下来,服务器进程开始等待客户连接到这个命名套接字,调用listen创建一个等待队列以便存放来自客户的进入连接。最后,服务器通过accept系统调用来接受客户的连接。此时,会产生一个与原有的命名套接字不同的新套接字,它仅用于与这个特定的客户通信,而命名套接字则被保留下来继续处理来自其他客户的连接。
套接字的工作过程(客户端):调用socket创建一个未命名套接字,将服务器的命名套接字作为一个地址来调用connect与服务器建立连接。一旦建立了连接,就可以像使用底层文件描述符那样来用套接字进行双向的数据通信。
TCP协议:
服务器端:tcp_server.c
TCP协议:
客户端:tcp_client.c
UDP协议:
服务器端:udp_server.c
客户端:udp_client.c
socket函数API.cpp
htons();//将short类型的值从主机字节序转换为网络字节序
inet_addr();//将IP地址字符串转换为long类型的网络字节序
gethostbyname();//获得与该域名对应的IP地址
inet_ntoa();//将long类型的网络字节序转换成IP地址字符串
- Linux-C-Socket编程
- Linux-C-Socket编程
- Linux-C-Socket编程
- Linux Socket编程 C
- 【c】linux socket编程
- Linux Socket编程 C
- linux C socket 编程
- Linux c Socket编程
- linux c socket编程
- Linux C socket编程
- Linux c 网络socket编程
- Linux c 网络socket编程
- linux下socket c 编程
- Linux下C编程 -- Socket编程
- linux C 编程 之 socket 网络编程
- 【Linux】Linux C socket 编程之TCP
- 【Linux】Linux C socket 编程之UDP
- linux socket 编程(C语言)
- 嵌入式C常用关键字——static
- 开放手机联盟--Open HandsetAlliance
- VS2010 源码编辑器敲第一下键就出现的问题,终于搞定了
- struts2中的struts.properties详解
- Android 开发环境安装失败问题总结
- Linux Socket编程 C
- JAVA面试题汇总
- oracle 11g 中的socket访问权限问题
- Linux下的GTK图形界面编程
- (计划)2010.12.25制订的学习目标
- 第一节
- 检测视频文件编码方式的工具和一些基本常识
- Java的运算符以及优先级
- tslib1.4移植到qq2440的环境配置