基于Linux的Socket网络编程的性能优化
基于Linux的Socket网络编程的性能优化
2009-10-23 嵌入式在线 收藏 | 打印
1 引言
随着Intenet的日益发展和普及,网络在嵌入式系统中应用非常广泛,越来越多的嵌入式设备采用Linux操作系统。Linux是一个源代码公开的免费操作系统,具有强移植性,所以对基于Linux的Socket网络编程的研究越来越重要。
Socket实际是网络传输层供给应用层的编程接口。传输层则在网络层的基础上提供进程到进程问的逻辑通道,而应用层的进程则利用传输层向另一台主机的某一进程通信。Socket就是应用层与传输层之间的桥梁。如图2所示。
使用Socket编程时可以开发客户机和服务器应用程序,它们可以在本地网络上进行通信,也可以通过Internet在全球范围内进行通信。编写并运行 Socket的客户端和服务器端程序,双方通过套接字建立了服务连接请求,并且通过一些方法提高Socket的性能。
3 Socket编程
3.1 Socket类型
常见的Socket有3种类型:
(1)流式Socket(SOCK_STREAM)它提供可靠的通信流,使用面向连接的TCP协议,从而保证数据传输的正确性和顺序性:
(2)数据报Socket(SOCK_DGRAM)数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错,它定义一种面向无连接的服务,使用数据报协议UDP;
(3)原始Socket(SOCK_RAM)它允许直接访问底层协议,功能强大但使用较为不便,主要用于一些协议的开发。本编写的Socket属于流式Socket。
3.2 Socket编程流程
Socket编程采用客户/服务器模式。因此编程分为服务器端和客户端两部分。
每一个Socket都用一个半相关描述(协议,本地地址,本地端口)来表示,Socket也有一个类似于文件打开的函数,该函数返回一个整型的Socket描述符,随后建立连接,数据传输等操作都通过Socket来实现。
编程流程如下:服务器端首先建立Socket,返回该Socket的描述符:配置Socket的端口和IP地址;建立监听甬数,检测是否有客户端向服务器发送请求,若有则接收该请求,将其放到接收队列中:从接收队列中接受一个请求;并向客户端发送确认连接信息。
客户端建立一个Socket,返回该Socket的描述符;配置Socket端口和IP地址;向服务器发送连接请求,并接收服
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
实用小窍门实在太多了,慢慢探索吧。想起刚用电脑时,天天在《电脑爱好者》中找小窍门。找到了就如获至宝。又看到我blog中有人回复不习惯ubuntu,还是投奔win7。心想,应该某些人也挺需要一点使用小窍门的交流的。信手写了些,供参考。
本文适合初级用户阅读。
1.终端复制粘贴
用gnome终端时,对字符的复制粘贴感觉没有w ......
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一、将本机文件复制到远程服务器上
#scp /home/administrator/news.txt root@192.168.6.12 ......
网上介绍linux裁剪的文章很多,不过很多都是忽略了前面的很多步骤。最近老板要布置linux裁剪的任务,我没有什么linux项目基础,所以很多东西都要自己摸索。下面是我总结的步骤。
Linux内核裁剪
1.
首先把linux源代码下载到本地,下载的网址是www.kernel.org,
2.&n ......
关于windows与linux之间文件互传
环境:有两台主机
A:192.168.2.109 OS:windows xp
B:192.168.2.113 OS:linux (redhat5.3)
目的:要实现两台主机之间文件的互传。
本人在网上看过几种方法,有的需要第三方软件(比如:在Windows XP下用Serv-u软件架设了FTP服务 ......