芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片破解iTOP-4412实现基于TCP的socket编程

芯片破解 TCP是一种面向连接的、可靠的、基于IP的传输层协议。通过TCP可以保证我们传送的数据的正确性。
       芯片破解 Linux下网络通信程序基本上都是采用socket的方式。socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open->读写read/write->关闭close”模式来操作。Socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)。说白了socket是应用程序与TCP/IP协议族通信的中间软件抽象层,它是一组接口。
    现在我们看一下基于TCP/IP应用程序通信的流程,如下图01:

        芯片破解通过上图我们可以看到TCP/IP通信是基于服务器/客户端的模式来实现的,首先是服务器(server)端调用socket函数创建一个套接字,然后调用bind绑定函数,绑定函数主要是设置通信时使用哪种地址族(IPv4,IPv6等),使用的端口号。然后调用listen函数来监听客户端的连接请求。
        现在我们来看下客户端(client)端的流程,首先调用socket函数创建一个套接字,然后调用connect函数连接服务器,这时服务器端的listen函数监听到客户端的连接请求就会调用accept函数去接受请求,这样连接就建立好了。之后双方就可以调用read/write函数收发数据了,在完成通信以后服务器(server)和客户端(client)调用close函数关闭创建的套接字。
        芯片破解下面我们来看一个实现TCP/IP的通信的例子,首先来看一下服务器(server)端的代码:
#include <stdlib.h>
#include <sys/types.h>
#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h>

int main()
{
        int sfp, nfp, num = 0;
        struct sockaddr_in s_add,c_add;
        int sin_size;
        unsigned short portnum=0x8888;

        char buffer[100] = {0};

        printf("Hello,welcome to my server !\r\n");
                        /* 创建TCP连接的套接字 */
        sfp = socket(AF_INET, SOCK_STREAM, 0);
        if(-1 == sfp)
        {
                printf("socket fail ! \r\n");
                return -1;
        }

        printf("socket ok !\r\n");

                        /* 变量s_add清零 */
        bzero(&s_add,sizeof(struct sockaddr_in));
        s_add.sin_family=AF_INET;
        s_add.sin_addr.s_addr=htonl(INADDR_ANY);
        s_add.sin_port=htons(portnum);

                        /* 绑定s_add到套接字sfp上 */
        if(-1 == bind(sfp,(struct sockaddr *)(&s_add), sizeof(struct sockaddr)))
        {
                printf("bind fail !\r\n");
                return -1;
        }


联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信