linux_socket编程
文章平均质量分 64
cos_sin_tan
热爱移动开发,专注成长
展开
-
socket描述符选项[SOL_SOCKET]
转自:http://www.diybl.com/course/6_system/linux/Linuxjs/2008723/133811.html#include int setsockopt( int socket, int level, int option_name, const void *option_value, siz转载 2012-07-17 08:38:26 · 682 阅读 · 0 评论 -
TCP首部
转自:http://www.cnpaf.net/Class/TCPANDIP/200408/325.html TCP数据被封装在一个IP数据报中如下图: TCP数据在IP数据报中的封装显示TCP首部的数据格式。如果不计任选字段,它通常是20个字节。 TCP包首部 每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上转载 2012-09-09 10:52:42 · 1287 阅读 · 0 评论 -
UDP首部
转自:http://www.cnblogs.com/lovemo1314/archive/2010/10/27/1862657.htmlUDP格式 1、首部 长度:以字节为单位,包括首部和数据。另附原址:http://en.wikipedia.org/wiki/User_Datagram_Protocol端口号表示发送进程和接收进程。UDP长度字段指的是UDP首部和转载 2012-09-09 13:06:19 · 1490 阅读 · 0 评论 -
linux下tftp server的一种简易实现
转自:http://blog.chinaunix.net/uid-11911430-id-2801536.html博主:经测试,能够使用最近学习LINUX socket编程,利用socket实现了一个Linux下命令行的tftp客户端,此客户端只可以从TFTP服务器获取文件。使用格式为:./tftpget 。该程序可以运行在Linux的PC机上,也可以运行在嵌入式开发板上(需交叉编译转载 2012-09-22 14:33:52 · 1240 阅读 · 0 评论 -
讲tftp的一篇不错的论文,可惜俺没积分那~~~~~~~~
转自:http://www.doc88.com/p-709879620041.html转载 2012-09-23 20:08:42 · 547 阅读 · 0 评论 -
TCP,UDP客户端和服务器端编程的一般步骤
博主:上次有个宝宝问我的代码,说,怎么不用bind呢,connect怎么没有呢。。。我一愣,额。。。TCP编程的服务器端一般步骤是:1、创建一个socket,用函数socket();2、设置socket属性,用函数setsockopt(); * 可选3、绑定IP地址、端口等信息到socket上,用函数bind();4、开启监听,用函数listen();5转载 2012-09-23 20:10:42 · 1994 阅读 · 0 评论 -
为什么写入文本的内容会出现一些不能顶格的情况
char first[5]="aa\n";char second[5]="aa\n";write(fd,first,sizeof(first));write(fd,second,sizeof(second));写入之后呢,文件中会换行,然后会出现神奇的不顶格的现象,有点不明白,用notepad看的话第二行就是,nullnull原创 2012-10-22 14:54:49 · 1778 阅读 · 0 评论 -
Linux下获取本地IP地址--------ioctl
转自:http://blog.csdn.net/moonvs2010/article/details/7785894 获取本地的局域网IP地址,个人认为最好的还是这个神器---ioctl,这个接口的功能真是非常强大,非常值得研究和学习。即使本地的主机名是localhost,使用ioctl也可以轻松地获取局域网中的IP地址,而且不需要在/etc/hosts中绑定局域网IP。使用ioctl来获取转载 2012-10-22 15:09:34 · 607 阅读 · 0 评论 -
Linux下Sniffer程序的实现(PF_PACKET,SOCK_RAW,recvfrom,htons(ETH_P_IP),setsockopt(filter))
转自:http://www.cnblogs.com/jinrize/archive/2009/11/24/1609902.html重点:ioctl设置网卡混杂模式,setsockopt设置recvfrom过滤剩下的IP报文的进一步具体过滤(BPF格式)作者:Gianluca Insolvibile整理:Seal(永远的FLASH)日期:2004-11转载 2012-10-31 09:12:54 · 4855 阅读 · 3 评论 -
对监听套接字进行read、write和connect操作会怎样?
博主:恩恩~~~值得好好想想哦~~~~~~~~~转自:http://blog.csdn.net/moonvs2010/article/details/7783572 已经学习的时候没有想过这个问题,只知道用监听套接字来执行accept操作,获取与客户端的连接,从来就没想过如果对监听套接字执行普通套接字的操作会怎样,今天特意做了个实验,对这三种情况进行测试。 一、 read操作转载 2012-10-22 17:09:55 · 1478 阅读 · 0 评论 -
linux中select()函数分析
转自:http://blog.csdn.net/zi_jin/article/details/4214359Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生转载 2012-10-22 19:55:27 · 818 阅读 · 0 评论 -
Linux网络编程之tcpdump抓包分析TCP三次握手过程
博主:这篇文章是真好啊。刚刚在网上看到的都是些tcpdump的参数解析,我了个去!还是这个好,不过这个运行时(1)client端要注意:./client 127.0.0.1(2) tcpdump 'port 20000' -i lo -S //20000后面是 字母 l o ,一开始看成是管道符号。。。囧 转自:http://blog.csdn.net/polarb转载 2012-10-23 21:05:41 · 2709 阅读 · 0 评论 -
error: openssl/ssl.h: No such file or directory
前些天交叉编译 openssl的时候,发现 #include说 ,找不到。。恩,改成包含绝对路径呢是个傻傻的做法,所以在makefile里面 加上 -I/usr/include即可,在FLAGS后面,前提是 openssl这个文件夹要已经cp到/usr/include这个目录下面了。原创 2012-11-02 14:42:49 · 30509 阅读 · 3 评论 -
最近总在犯傻,make install
昨儿重新编译了openssl.步骤如下:1、./config no-asm shared --prefix=/usr/local/openssl2、 修改Makefile CC=arm-linux--gcc3、 make4、 make install好吧,我一开始犯得傻原创 2012-11-02 14:51:44 · 470 阅读 · 0 评论 -
linux中时间的获取
time_t是一个在time.h中定义好的结构体。原形如下: struct tm { int tm_sec;//seconds 0-61 int tm_min;//minutes 1-59 int tm_hour;//hours 0-23 int tm_mday;//day of the month 1-31原创 2012-11-02 15:01:25 · 773 阅读 · 0 评论 -
整理 的不错的 各种 协议头部,是不错呀
http://blog.chinaunix.net/uid-20749043-id-1878324.html转载 2012-11-02 15:03:36 · 633 阅读 · 0 评论 -
write函数不管用?
有次写个小代码,不复杂,但是老师cat file,nothing啊,纳闷纳闷~~~后来发现得打开---写入--关闭---才能 写入到物理盘里面。while(){ open; write; close();} not: openwhile(){ write();}close()原创 2012-10-26 14:37:42 · 1054 阅读 · 0 评论 -
s3c2440上ucos-ii下lwip移植成功
转自:http://826891.blog.163.com/blog/static/8637693201032610528236/?fromdm&fromSearch&isFromSearchEngine=yes今天成功移植LwIP(轻型协议栈)1.2.0到S3C2440下的ucos-ii操作系统下,上位机能够ping通了。移植过程及此过程中遇到的一些问题,记录下来如下:1.转载 2012-08-25 15:40:16 · 2891 阅读 · 0 评论 -
基于Nios软核CPU的uC/OS-II和LwIP移植 (3)
4 网络设备驱动程序 我们采用的网络芯片为Cirrus Logic公司的CS8900芯片。LwIP的网络驱动有一定的模型,/src/netif/ethernetif.c文件即为驱动的模板,用户为自己的网络设备实现驱动时应参照此模板。在LwIP中可以有多个网络接口,每个网络接口都对应了一个netif结构,该结构体包含了相应网络接口的属性、收发函数。LwIP调用netif转载 2012-08-22 14:06:36 · 1548 阅读 · 0 评论 -
基于Nios软核CPU的uC/OS-II和LwIP移植 (2)
3.1 与CPU或编译器相关的include文件 在LwIP/src/arch/include/arch目录下,cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,如数据长度、字的高低位顺序等。这应该与用户实现uC/OS-II时定义的参数一致。通常,c语言的结构体(struct)是4字节对齐的,但是在处理数据包的时候,LwIP是通过结构体中不同数据的长转载 2012-08-22 14:06:05 · 1814 阅读 · 0 评论 -
C实现ping功能的函数注释改写版
#include #include #include #include #include #include #include #include #include #include #include #include #define PACKET_SIZE 4096#define MAX_WAIT_TIME 5#define原创 2012-07-17 12:50:44 · 1753 阅读 · 0 评论 -
用C语言实现Ping程序功能
转自:http://linux.chinaunix.net/docs/2006-12-25/3533.shtml用C语言实现Ping程序功能日期:2006-12-25 作者:梁俊辉 来自:IBM DW中国ping命令是用来查看网络上另一个主机系统的网络连接是否正常的一个工具。ping命令的工作原理是:向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一转载 2012-07-17 12:44:00 · 950 阅读 · 0 评论 -
linux下的抓包工具
昨天在windows下面装了一个wireshark,但是是在linux下测试的socket,于是想想在ubuntu下面是不是也有同名软件,果然。不错。sudo apt-get install wireshark耗时5分钟,装完了。直接命令行启动,wireshark工作界面如下:原创 2012-07-18 09:13:50 · 983 阅读 · 0 评论 -
IP、ICMP、UDP、TCP 校验和算法
以前看计算机网络相关的书,每次看到IP或者UDP报头校验和时,都一瞥而过,以为相当简单,不就是16bit数据的相加吗。最近在研究《TCP/IP详解 卷1:协议》这本书,看到校验和是16bit字的二进制反码和(晕,以前都没注意原来是反码和,看来以前看书不仔细啊!罪过,罪过~~),觉得很奇怪,为什么会用反码和,而不是直接求和呢?(因为我认为TCP/IP协议里面的算法和思想一般都是非常经典的,人家这么做转载 2012-07-18 09:25:45 · 813 阅读 · 0 评论 -
简单的telnet服务器
高级网络编程实验报告第三次实验内容: 支持并发的模拟Telnet C/S 程序姓名: oxstar计算机科学与工程学院2009年12月一、实验目的了解并发服务器程序编写方式。学习Telnet协议相关知识,模拟部分Telnet C/S 功能。二、实验环境操作系统:Fedora 12Linux内核:2.6转载 2012-07-18 01:48:13 · 1222 阅读 · 0 评论 -
东大某位同学ping代码,还不错
转自百度文库。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define PACKET_SIZE 40转载 2012-07-18 09:29:02 · 5560 阅读 · 0 评论 -
getosinfo之 uname()
#include#include#include#include#include#include#include //其实最主要就是它了#include #include#include#include #include int main(int argc ,char **argv){ struct utsname hostname;原创 2012-07-20 14:53:29 · 638 阅读 · 0 评论 -
获取 主机的信息
#include #include #include #include #include #include #include int main(int arg,char** argv){ struct hostent *host,*host2; if(NULL == (host = gethostbyname(argv[1]))){转载 2012-07-20 15:04:35 · 455 阅读 · 0 评论 -
AF_UNSPEC、AF_INET和AF_INET6之间的关系
转自:http://blog.csdn.net/qiaoliang328/article/details/4729869ai_family参数指定调用者期待返回的套接口地址结构的类型。它的值包括三种:AF_INET,AF_INET6和AF_UNSPEC。如果指定AF_INET,那么函数九不能返回任何IPV6相关的地址信息;如果仅指定了AF_INET6,则就不能返回任何IPV4地址信息。AF_U转载 2012-07-20 19:32:11 · 2408 阅读 · 0 评论 -
gethostbyaddr ,gethostbyname
转自:http://www.linuxidc.com/Linux/2012-07/65694p3.htm网络主机名和IP地址的对应关系在做网络编程时经常要碰到的一个问题就是根据对方主机名来获取其IP地址,或者根据IP地址反过来解析主机名和其他信息。Linux提供了两个常用的API:struct hostent *gethostbyname(const char *name);转载 2012-07-20 12:25:07 · 2005 阅读 · 0 评论 -
Linux网络编程必看书籍推荐
转自:http://blog.csdn.net/21aspnet/article/details/6694485首先要说讲述TCP/IP的书很多,其中有3泰书很全。分别是《TCP/IP详解》三卷本,《用TCP/IP进行网际互连》三卷本,《TCP/IP指南》+《IPv6》四卷本其中TCP/IP详解的作者还写了另外2本经典著作,《Unix环境高级编程》,《Unix网络编程》作者W.Ri转载 2012-07-21 23:27:10 · 722 阅读 · 0 评论 -
linux 常用头文件
转自:http://hi.baidu.com/%C1%F8826742781/blog/item/82d6b9ff6aad4138700eec7d.html#lastcmt 验证程序断言 cpio归档值 字符类型 目录项 出错码 文件控制转载 2012-07-22 21:11:27 · 1717 阅读 · 0 评论 -
进程间传递描述符
转自:http://blog.csdn.net/sparkliang/article/details/5486069范例代码:processB.c#include #include #include #include #include #include #include #include #include #include ssize_t recv_fd(int转载 2012-07-23 10:24:14 · 1656 阅读 · 1 评论 -
默认网关
顾名思义,网关(Gateway)就是一个网络连接到另一个网络的“关口”。 按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们 所讲的“网关”均指TCP/IP协议下的网关。 那么网关到底是什么呢?网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为25转载 2012-07-26 09:23:54 · 714 阅读 · 0 评论 -
基于Nios软核CPU的uC/OS-II和LwIP移植 (1)
转自:http://embed.chinaitlab.com/os2/763554.htmlAltera公司推出的Nios软核CPU是一种可配置的通用精简指令集计算RISC(Reduced Instruction Set Computing)嵌入式处理器。它可以与各种外设相结合,构成一个定制的可编程片上系统SOPC(System on Programable Chip)。转载 2012-08-22 14:03:45 · 2614 阅读 · 0 评论 -
linux socket编程实例 helloworld
转自:http://blog.csdn.net/shaohui/article/details/656895在Linux下写了个小的socket程序,分为客户端和服务器端,服务端开一个端口(2000),做为一个daemon,等待客户的连接请求.一旦有客户连接,服务器端打印出客户端的IP地址和端口,并且向服务器端发送欢迎信息和时间.下面是服务端的代码(tcpserver.c).由于这只是个简单的转载 2012-08-22 14:41:32 · 613 阅读 · 0 评论 -
链路层套接字PF_PACKET简介(转)
转自:http://blog.163.com/pizi98@126/blog/static/268128912009136358565/ 在linux环境中要从链路层(MAC)直接收发数据帧,可以通过libpcap与libnet两个动态库来分别完成收与发的工作。虽然它已被广泛使用,但在要求进行跨平台移植的软件中使用仍然有很多弊端。这里介绍一种更为直接地、无须安装其它库的从MAC转载 2012-10-26 14:29:41 · 1121 阅读 · 0 评论