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

如何在LINUX下配置网卡及用GCC开发程序进行TCP/IP通信

    来源: 互联网  发布时间:2014-12-27

    本文导语:  请教高手,如何在LINUX下配置网卡及用GCC开发程序进行TCP/IP通信。有代码佳。我的邮箱为:dengxin611@163.com.谢谢! | 客户端 #include  #include  #include  #include  #include  #include  #include  #define MAX_B...

请教高手,如何在LINUX下配置网卡及用GCC开发程序进行TCP/IP通信。有代码佳。我的邮箱为:dengxin611@163.com.谢谢!

|
客户端
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define MAX_BUF_SIZE (300)
static char buf[MAX_BUF_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int main()
{
int sock;
struct sockaddr_in sin;
int size;

sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
perror("client socket");
return -1;
}

memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr("192.168.21.207");
sin.sin_port = htons(1685);

if (connect(sock, (struct sockaddr *)&sin, sizeof(sin)) == -1)
{
perror("client connect");
return -1;
}
size = 0;
if (sock != -1)
{
size += send(sock, buf, MAX_BUF_SIZE, 0);
size += send(sock, buf, MAX_BUF_SIZE, 0);
size += send(sock, buf, MAX_BUF_SIZE, 0);
size += send(sock, buf, MAX_BUF_SIZE, 0);
size += send(sock, buf, MAX_BUF_SIZE, 0);
}
printf("client send %d bytesn", size);
close(sock);
}


服务器段
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define MAX_BUF_SIZE (1024)
static char buf[MAX_BUF_SIZE];

int display_address(const char *msg, struct sockaddr_in* p_sin)
{
if(p_sin->sin_family != AF_INET) 
{     
fprintf(stderr, "Not an Internet socket.n");     
return -1;
}
fprintf(stdout, "%s ==> address is: %s : %dn", msg, inet_ntoa(p_sin->sin_addr), ntohs(p_sin->sin_port));
   return 0;
}

int main()
{
int sock, serv;
struct sockaddr_in sin;
int size;
fd_set set;

FD_ZERO(&set);

serv = socket(AF_INET, SOCK_STREAM, 0);
if (serv == -1)
{
perror("server socket");
return -1;
}

memset(&sin, 0, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons(1685);

if (bind(serv, (struct sockaddr *)&sin, sizeof(sin)) == -1)
{
perror("server bind");
return -1;
}  

listen(serv, 5);

memset(&sin, 0, sizeof(sin));
size = sizeof(sin);
if (getsockname(serv, (struct sockaddr *)&sin, &size) == -1)
perror("serv sockname");
display_address("server socket name", &sin);
sock = accept(serv, NULL, NULL);

if (sock != -1)
{
memset(&sin, 0, sizeof(sin));
size = sizeof(sin);
if (getpeername(sock, (struct sockaddr *)&sin, &size) == -1)
perror("sock peername");
display_address("sock peer name", &sin);
memset(&sin, 0, sizeof(sin));
size = sizeof(sin);
if (getsockname(sock, (struct sockaddr *)&sin, &size))
perror("sock sockname");
display_address("sock socket name", &sin);

//sleep(1);
while(1)
{
FD_SET(sock, &set);
select(FD_SETSIZE, &set, NULL, NULL, NULL);
size = recv(sock, buf, MAX_BUF_SIZE, 0);
if (size 

    
 
 

您可能感兴趣的文章:

  • linux/Centos下查看和修改网卡Mac地址(ifconfig命令)
  • 怎么配置网卡,是不是红帽linux9要装网卡驱动啊
  • D-link DWL-122无线网卡厂家没有提供Linux下的驱动,我应该怎么办使得此无线网卡能在Linux下用啊?
  • 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不认???
  • 为什么linux找不到网卡
  • 双网卡搭建网桥后,怎样确定数据包是从那个网卡进来的?(LINUX) iis7站长之家
  • ?红旗linux中如何更改网卡物理地址?
  • Linux网卡配置问题?
  • suse linux找不到网卡
  • Linux内核中影响tcp三次握手的一些协议配置
  • LINUX如何配置网卡,配置TELNET,急!在线等待!
  • Linux下NFS服务配置详解
  • 求xmanager3.0 配置root用户,连接redhat linux 6.0 配置文档
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 高分求救!!!怎样在linux下配置tomcat文件?同时配置sqlServer数据库?
  • 何处有 Linux 内核编译配置详细的中文介绍? 我在重新配置编译时老是出错:-(
  • 安装linux的最低配置:硬盘,内存,以及cpu的最低配置?多谢赐教!
  • 请问:我在win2000下装了一个vMware4.5,又装了一个linux9.0,可是不会配置网络,我的虚拟机已经配置好了桥连接,可是在linux下我不知道
  • LINUX的一段DHCP配置怎样在WINDOWS 2003上配置相同的功能
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SSL握手通信详解及linux下c/c++ SSL Socket代码举例
  • 想设计几个简单的通信程序,在linux环境下编译通信,怎么实现?
  • linux下进程间通信:共享内存原理及具体用法举例(基于c/c++语言)
  • linux驱动程序是怎样通过内核和应用程序通信,还有是怎样和硬件通信,跪求求解,谢谢高手留言。
  • 嵌入式linux下线程通信可以用共享文件法吗?
  • linux与Windows socket通信,乱码
  • Linux上SERVER 和vc上CLIENT的通信connect失败!
  • linux如何和hid类设备通信
  • linux进程异步通信,高手请进
  • Linux网络编程(怎样实现两个客户端之间的通信)
  • linux 与windows 间socket通信问题
  • LINUX下局域网通信的问题
  • 深入了解Linux系统TCP通信的高手请帮帮忙:Linux通信问题.分不够再加
  • 求救!!!嵌入式Linux 串口通信
  • Linux下的网络通信架构 cwinux
  • linux 下使用 sendmsg 函数 udp 通信问题???
  • linux下追求性能的通信服务器,应该用什么技术?
  • [100]求答案,关于虚拟机linux和WIN2K通信的问题???
  • linux通信问题
  • linux 与windows进程间通信的区别??
  • linux C语言 TCP 通信
  • 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


  • 站内导航:


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

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

    浙ICP备11055608号-3