当前位置:  技术问答>linux和unix

linux 无线网卡socket编程出错

    来源: 互联网  发布时间:2016-11-09

    本文导语:  大家好,小弟最近做网络编程的一些东西。主要想实现arm端和笔记本电脑端进行通讯,二者通过无线网卡来进行,通过一个公共的无线路由来连接,现在的问题是原来用有线网络可以调通的程序,换成无线网络就不行...

大家好,小弟最近做网络编程的一些东西。主要想实现arm端和笔记本电脑端进行通讯,二者通过无线网卡来进行,通过一个公共的无线路由来连接,现在的问题是原来用有线网络可以调通的程序,换成无线网络就不行了,可以相互ping的通,不知什么原因。之前有用过另外一款网线网卡,和笔记本进行点对点连接是可以的,也就是说哦不走外网的话程序也是能行的。以下是手法两端的程序:
server:

#include 
#include
#include 
#include 
#include 
#include 
#include 
#include 

#define SERVPORT 3333
#define BACKLOG 10
#define MAX_CONNECTED_NO 10
#define MAXDATASIZE 10

int main()
{
  struct sockaddr_in server_sockaddr,client_sockaddr;
  int sin_size,recvbytes;
  int sockfd,client_fd,i;
  char buf[MAXDATASIZE];
/*建立一个socket*/
  if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
    perror("socket error");
    exit(1);
  }
  printf("socket success!,sockfd=%dn",sockfd);
/*设置相关参数*/
  server_sockaddr.sin_family=AF_INET;
  server_sockaddr.sin_port=htons(SERVPORT);
  server_sockaddr.sin_addr.s_addr=INADDR_ANY; //0.0.0.0
  bzero(&(server_sockaddr.sin_zero),8);
/*绑定函数bind*/
  if(bind(sockfd,(struct sockaddr *)&server_sockaddr,sizeof(struct sockaddr))==-1){ 
    perror("bind error");
    exit(1);  
  }
  printf("bind success!n");
/*调用listen,backlog表示主机允许多少个从机与之连接进行传输*/
  if(listen(sockfd,BACKLOG)==-1){
    perror("listen error");
    exit(1);  
  }
  printf("listen...n");
/*调用accept,等待客户端的连接*/
  sin_size=sizeof(client_sockaddr);
  if((client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size))==-1){
    perror("accept error"); //clientfd = accept(socketfd, (struct sockaddr *)&clientAdd, &len)) 
    exit(1);  
  }
  while(1)
  {
    if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){
      perror("recv error");
      exit(1);  
    }  

    if((buf[0]=='&')&&(buf[8]=='n'))
    {
      for(i=1;ih_name);
  printf("IP Address:%sn",inet_ntoa(*((struct in_addr *)host->h_addr))); 
//建立一个socket
  if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
    perror("socket error");
    exit(1);
  }
//设置服务器端sockaddr_in的相关参数
  serv_addr.sin_family=AF_INET;
  serv_addr.sin_port=htons(SERVPORT);
  serv_addr.sin_addr=*((struct in_addr*)host->h_addr); 
  bzero(&(serv_addr.sin_zero),8);
//调用connect主动发起对服务器端的连接
  while(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1);
}
void senddata(void)
{
  int i=0;
  while(1)

    {

        pthread_mutex_lock(&mutex);

  //发送信息给服务器
        if((sendbytes=send(sockfd,buf,sizeof(buf),0))==-1){
           perror("send error");
           exit(1);  
  }  
i+=sendbytes;
sendbytes=0;
printf("send %d bytesn",i);

        pthread_mutex_unlock(&mutex);

    }
}
void receivedata(void)
{
  while(1)

    {

        pthread_mutex_lock(&mutex);

       

//发送信息给服务器
        if((sendbytes=recv(sockfd,buf,sizeof(buf),0))==-1){
           perror("receive error");
           exit(1);  
  }  
        pthread_mutex_unlock(&mutex);

    }
}
//opencv
void opencvdata(void)
{
  int i,j;
  j=0;
  while(1)

    {

        pthread_mutex_lock(&mutex);   
        //模拟拟合系数
        for(i=1;i

    
 
 

您可能感兴趣的文章:

  • D-link DWL-122无线网卡厂家没有提供Linux下的驱动,我应该怎么办使得此无线网卡能在Linux下用啊?
  • 刚买的TP-LINK笔记本无线网卡?是否要装驱动?linux识别不了啊!?
  • 求救!笔记本电脑linux下安装usb无线网卡问题!
  • linux下怎样用无线网卡上网
  • linux程序怎么设置无线网卡的混杂模式?
  • Linux下关于使用3G无线网卡的问题
  • Linux下使用无线网卡上网的问题
  • 50分问个简单问题:LINUX下在system-config-network中将无线网卡的essid设置为自动,会有什么效果?
  • arm linux 无线网卡没有running
  • linux下使用无线模块wifi发现不了网卡
  • Linux系统下怎么用TP-Link的无线网卡?
  • 3G无线网卡在linux下的使用,高分相送
  • 能否提供一个linux无线网卡的驱动程序的源代码
  • DM6467内核linux2.6.18,多张电信3G无线网卡不能同时使用
  • Linux 下USB无线网卡上网设置
  • linux下无线驱动问题,找不到无线网卡
  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • 怎么配置网卡,是不是红帽linux9要装网卡驱动啊
  • LINUX中装了三个网卡,三个网卡都是同个IP段,如何让他们不能互相访问?
  • 双网卡搭建网桥后,怎样确定数据包是从那个网卡进来的?(LINUX)
  • linux下多网卡机器中,如何通过指定网卡来接受数据?
  • 我的网卡在redhat7.3下不能自动驱动,但我有for linux的驱动程序,请问如何才能驱动我的网卡,我是菜菜,请详细说明,谢谢!
  • 请教LINUX下本机有多块网卡取其中指定一块网卡所对应的IP方法
  • 双网卡,eth0是ADSL,eth1局域网,linux启动时eth0显示失败,提示决定IP的错误,把网卡都设成192.168.0.1行吗
  • 关于linux网卡的问题
  • 单机无网卡,在 Virtual PC 下面安装 linux 问题
  • LINUX系统无法识别到网卡
  • linux网络配置(双网卡)问题
  • ********菜鸟问题,LINUX安装时没有检测到网卡*********
  • Linux 能否用100M的网卡?
  • 请问是不是有的网卡linux不认???
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux shell脚本 linux crond 的一个鲜为人知的错误,单独执行没问题,放到crond 中就执行出错 试问高手们哪个环节出错
  • linux 64位编译出错。linux 32位可以编译过。
  • 编译linux0.01内核时出错,没有权限?
  • 安装arm-linux-gcc出错
  • 还是老问题啊!!!高手吗?帮忙啊!LINUX 9.0安装时出错!
  • RH linux9启动出错?
  • 求教Redhat Linux 9.0安装出错问题?
  • socket在linux下能用,在unix下出错
  • u盘启动linux出错
  • 在移植linux 2.6.32.27与 33时出错
  • linux 网络编程中 send()函数出错
  • 急!!安装linux出错!希望指教!非常谢谢!
  • 安装Linux 出错(急)
  • linux内核升级后启动出错
  • 64位linux下编译C++出错问题,求解决
  • 安装Linux出错
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • Linux Shell提示符出错,并发出警报声
  • linux7.1 安装 oracle8.1.7 出错
  • Redhat Linux安装RealPlayer11出错
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3