532392902 发表于 2015-1-8 10:33:56

socket网络编程问题求助

Socket网络编程相关问题请教。小弟不才,从前人那里学习到Linux环境下socket相关网络编程,因所用的开发平台是X86平台,虚拟机上安装的是Ubuntu操作系统,在usr/include这个文件夹下有sys这个文件夹,所以在网上搜到很多有关socket的代码都可以轻而易举的编译通过,也能理解。
虚拟机系统自带sys这个文件夹见下图红色框中的代码,都与sys文件夹中的头文件有关。 如今我购买了OK335XS开发板,因这里是ARM平台,与X86不兼容,按照随开发板带的资料已经在虚拟机下安装交叉编译器,第一个hello world.ko程序已经成功运行。不过这里用到的输出字符函数不是printf,而是printk。据说这两种输出方式是有区别的(我们暂且不追究这个问题)。下面的是关键问题:arm平台的内核是kernel-3.2,在其主目录下没有sys这个文件夹(听说这个sys是文件系统),而在其include文件夹中也没有sys这个文件夹,我试着从Ubuntu中将sys文件夹拷贝过来,但发现不兼容,所谓牵一发而动全身,首先是找不到sys/socket.h sys/types.h这样的错误,细查其中socket.h代码发现其中的所包含头文件也找不到,我是翻遍了里面的各个文件夹,虽说有同名,还是内容还不一样。遇到这样的问题真的是让我束手无策啊,在百度里,我搜索:arm Linux 网络编程或者armLinux socket编程所搜索的代码也均是#include<sys/socket.h>这样的写法,为什么他们这样写就能通过,我想肯定是他们的内核支持socket编程。我曾经从Linux官方下载了最新的内核,好像最新内核中也没有sys这个文件夹,这到底是怎么回事?我该怎么办,下面这个是我所说的购买的开发板。file:///C:/Users/xyg/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg

─╄OvЁ等待 发表于 2015-1-8 11:55:32

不知道你现在是要做什么,sys目录一般是编译应用时包含的的头文件,开发板本身不能编译应用,所以不包含该目录很正常,只要你在虚拟机上能编译通过,开发板上就基本能够运行

532392902 发表于 2015-1-8 14:04:00

─╄OvЁ等待 发表于 2015-1-8 11:55 static/image/common/back.gif
不知道你现在是要做什么,sys目录一般是编译应用时包含的的头文件,开发板本身不能编译应用,所以不包含该目 ...

可以说是网络通信数据的获取,用到了socket函数,我是在虚拟机下编译程序的,编译完之后把生成的ko文件insmod到arm嵌入式开发板之上,可是因为提供的kernel 3.2中没有sys这个目录,当我程序中写有关sys的文件,如:#include<sys/socket.h>的时候,编译不通过,后来查看才知道我的源码当中没有sys这个目录。
参考代码:http://www.cnblogs.com/rollenholt/articles/2585432.html

─╄OvЁ等待 发表于 2015-1-9 11:46:46

532392902 发表于 2015-1-8 14:04 static/image/common/back.gif
可以说是网络通信数据的获取,用到了socket函数,我是在虚拟机下编译程序的,编译完之后把生成的ko文件in ...

你编译的程序是ko? 你到底是在写应用还是写驱动?
页: [1]
查看完整版本: socket网络编程问题求助