前置:

  1. 手机端通过TCP发送(1-20)的数字到Linux下的主机,Linux的主机实现服务端的监听
  2. Linux服务端的IP地址是192.168.5.174,端口号:9999
1.手机客户端编程
     tcp_client.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
void main(void)
{int fd;struct sockaddr_in addr;int r;int i=0;//1.socketfd=socket(AF_INET,SOCK_STREAM,0);if(fd==-1) printf("1:%m\n"),exit(-1);printf("建立socket成功!\n");//2.connectaddr.sin_family=AF_INET;addr.sin_port=htons(9999);inet_aton("192.168.5.174",&addr.sin_addr);r=connect(fd,(struct sockaddr*)&addr,sizeof(addr));if(r==-1) printf("2:%m\n"),exit(-1);printf("连接服务器成功!\n");for(i=0;i<20;i++){send(fd,&i,4,0);}close(fd);
}

     Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_SRC_FILES := \tcp_client.c
LOCAL_CFLAGS += -pie -fPIE
LOCAL_LDFLAGS += -pie -fPIELOCAL_MODULE := tcp_client
include $(BUILD_EXECUTABLE)

2.  Linux下主机实现服务端的监听

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
main()
{int serverfd;int cfd;int a;struct sockaddr_in sadr;struct sockaddr_in cadr;socklen_t len;int r;char buf[1024];//1.socketserverfd=socket(AF_INET,SOCK_STREAM,0);if(serverfd==-1) printf("1:%m\n"),exit(-1);printf("建立服务器socket成功!\n");//2.bindsadr.sin_family=AF_INET;sadr.sin_port=htons(9999);inet_aton("192.168.5.174",&sadr.sin_addr);r=bind(serverfd,(struct sockaddr*)&sadr,sizeof(sadr));if(r==-1) printf("2:%m\n"),exit(-1);printf("服务器地址绑定成功!\n");//3.listenr=listen(serverfd,10);if(r==-1) printf("3:%m\n"),exit(-1);printf("监听服务器成功!\n");//4.acceptlen=sizeof(cadr);cfd=accept(serverfd,(struct sockaddr*)&cadr,&len);printf("有人连接:%d,IP:%s:%u\n",cfd,inet_ntoa(cadr.sin_addr),ntohs(cadr.sin_port));       //5.处理代理客户描述符号的数据while(1){r=recv(cfd,&a,4,MSG_WAITALL);        if(r>0){//buf[r]=0;printf("::%d\n",a);}if(r==0){printf("连接断开!\n");break;}if(r==-1){printf("网络故障!\n");break;}}close(cfd);close(serverfd);
}

3.  测试结果

客户端:

root@Hisense:/data # ./tcp_client
建立socket成功!
2:m

服务端:

root@zhuyong:/home/zhuyong/test# ./tcp_server
建立服务器socket成功!
服务器地址绑定成功!
监听服务器成功!
有人连接:4,IP:192.168.2.10:41933
::0
::1
::2
::3
::4
::5
::6
::7
::8
::9
::10
::11
::12
::13
::14
::15
::16
::17
::18
::19
连接断开!

TCP-IP 用户态编程相关推荐

  1. Linux C : TCP/IP 和 网络编程

    目录 一.IP主机和IP地址 二.IP数据包格式 三.TCP/IP在网络中的数据流 四.套接字编程 4.1 创建套接字 4.2绑定socket和端口号 4.3.UDP 套接字 4.4 TCP 套接字 ...

  2. JAVA TCP/IP网络通讯编程(二)

    一个实例通过client端和server端通讯 客户端通过TCP/IP传输资源文件,比如图片,文字,音频,视频等..... 服务端接受到文件存入本地磁盘,返回接受到:"收到来自于" ...

  3. TCP/IP网络程序编程——端口扫描程序(TCP)

    端口扫描介绍 端口扫描可以收集目的主机的提供服务端口的信息,可以对于目的主机的信息进行收集. 端口扫描的程序每次会向目的主机特定端口发送一条请求,如果请求得到回应则可以判断是否本端口在对外开放,通过这 ...

  4. 使用springboot+netty处理tcp/ip服务端编程

    1.添加依赖 略 2.netty服务器启动 springboot的bean代码,另开一个线程启动 @Component public class NettyServer {private static ...

  5. HTTP—TCP/IP—SOCKET理解及浅析

    一个完整的HTTP请求的过程 此举例为抛砖引玉,引导大家进入思考状态. 当你按输入www.baidu.com ,浏览器接收到这个消息之后,浏览器根据自己的算法识别出你要访问的URL,为您展示出来搜索页 ...

  6. 基于C#的TCP/IP协议应用(一)

    一.背景与概念 1.标准以太网 以太网是美国Xerox(施乐)公司的Palo Alto研究中心于1975年研制成功的,其核心技术起源于ALOHA网.目前以太网是指符合IEEE 802.3标准的局域网( ...

  7. TCP/IP协议族详解

    目录 网络层 1.IP协议 1.1.IP地址 1.2.IP协议头 2.ARP及RARP协议 3.ICMP协议 传输层 1.TCP和UDP协议 2.TCP和UDP协议的一些应用 3.TCP"三 ...

  8. tcp/ip协议概述(8)----TCP/IP加速原理详解

    对某一个key value应用,从网卡接收数据包到应用层处理,再把数据发送出去,整个系统资源消耗情况如下: 可以看出,Sockets接口+TCP是系统瓶颈. 根据下图模型,瓶颈在于TCP(包括sock ...

  9. TCP/IP 某些最常见的错误原因码 (errno)列表

    TCP/IP 某些最常见的错误原因码 (errno)列表 对于在基于 UNIX 的环境中的 TCP/IP 用户,下表列出了某些最常见的错误原因码 (errno).它不是完整的错误列表.可以在文件 /u ...

  10. C1000k 新思路:用户态 TCP/IP 协议栈

    转自:http://blog.csdn.net/solstice/article/details/26363901 C1000k 新思路:用户态 TCP/IP 协议栈 现在的服务器支撑上百万个并发 T ...

最新文章

  1. java Graphics2D类
  2. android 状态机的作用,Android 状态机、状态模式 基础框架实现
  3. oracle resetlogs 误删,oracle undo表空间误删恢复
  4. 【题意分析】1042 Shuffling Machine (20 分)
  5. vaadin_Vaadin提示:延迟加载和商品标识
  6. Spring Cloud Config服务端配置细节(一)
  7. 浏览器播放rtsp视频流方案(ffmpeg + nginx转m3u8)
  8. 2013应届毕业生“东方通”校招应聘总结
  9. msp430c语言编程指南,MSP430单片机C语言编程.doc
  10. 桥连模式,模板模式的改进
  11. 西门子mag6000接线_西门子MAG5000/6000电磁流量计应用及安装
  12. Linux make 报错 pkg-config:not found
  13. 程序员,如何做好工作复盘?
  14. Redis的数据变成backup
  15. 王琪你计算机学院,麦考瑞大学 AI 实验室中科院信工所,两场论文直播重磅来袭!...
  16. 宇宙物演进程——外星人去哪了游戏代码(Python实现)
  17. “拓维元”震撼发布,拓维信息软硬全栈国产自研战略再落一子!
  18. PX4装机教程(七)几种常用的遥控器的使用
  19. 计算机设置鼠标关灯,鼠标灯怎么关?通过BIOS设置即可解决!
  20. 微电网并离网下垂控制simulink模型,只有模型,支持MATLAB2018版本

热门文章

  1. 不常用的SQL语句记录
  2. java string 最大长度_我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?...
  3. maven仓库--私服(Nexus的配置使用)
  4. RN学习(一)——创建第一个RN项目
  5. 长治a货翡翠,永州a货翡翠
  6. 重磅!Intel联合OpenStack基金会发布Kata Container项目
  7. cocos2d环境及创建一个自己的项目
  8. css实现垂直居中6种方法
  9. STL sort的危险之处
  10. TextMate里添加Theme