˜Ë(bi¨¡o)î}: ˜äÝ®ÅÉ´®¿ÚTCP͸?j¨¬ng)?[´òÓ¡±¾í“(y¨¨)]

×÷Õß: potato1992    •r(sh¨ª)ég: 2018-4-21 17:33
˜Ë(bi¨¡o)î}: ˜äÝ®ÅÉ´®¿ÚTCP͸?j¨¬ng)?br />´Ë´ú´aÓÃÓÚ½â›QÓÐЩÅóÓÑÏëͨß^˜äÝ®ÅÉßB½Ó†ÎƬ™C(j¨©)£¬²¢ºÍ†ÎƬ™C(j¨©)ëpÏò”µ(sh¨´)“þ(j¨´)͸?j¨¬ng)÷£¬ëŠÄX»òÕßÊÖ™C(j¨©)¾ù¿ÉÒÔͨß^tcpµÄ·½Ê½ßB½Óµ½˜äÝ®Åɲ¢Ö±½ÓÅc†ÎƬ™C(j¨©)ͨÐÅ¡£ÍêÕû¹¤³ÌÕˆ(q¨«ng)ÏÂÝd¸½¼þ£¬ßM(j¨¬n)ÈëdebugÄ¿ä›make¼´¿É
/*
============================================================================
Name        : test.c
Author      : Zhitao Lyu
Version     :
Copyright   : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "sys/types.h"
#include "sys/stat.h"
#include <dirent.h>
//#include<sys/socket.h>
#include "common.h"

int accept_cmd(int fd_tcp,int fd_serial,struct sockaddr_in *addr_ser)
{
        socklen_t sin_size = sizeof(struct sockaddr_in);
        struct sockaddr_in add_cli;
        socket_t sockfd_Cli=0;
        unsigned char recvline[BuffSize+1]="";
        int n=0;
        bzero(&add_cli,sizeof(add_cli));
        sockfd_Cli=accept(fd_tcp, (struct sockaddr *)(&add_cli), &sin_size);
        printf("Accept from IP: %s\n",inet_ntoa(add_cli.sin_addr));
        while(1)//per buff
        {
                n=recv_nb(sockfd_Cli,recvline,BuffSize);
                if(n>0){
                        writeserial(fd_serial, recvline, n, NULL);
                }
                else if(n==0)sleepms(10);
                else if(n<0)break;//end connection
           n=readserial(fd_serial,recvline, BuffSize, NULL);
           if(n>0) send(sockfd_Cli,recvline,n,0);
        }
        bzero(&add_cli,sizeof(add_cli));
        return 0;
}
int main(int argc,char *argv[]) {
        int err=0;
        int fd_tcp=0;
        int Port=5221;
        struct sockaddr_in addr_ser;

        int fd_serial=0;
        if(argc>1)
        {
                Port=atoi(argv[1]);
                if(Port<1024)
                        Port=5221;
        }

        fd_tcp=opentcpserver(&addr_ser,Port);
        if(fd_tcp==-1){
                printf("open tcpsever err\n");
                return 0;
        }
        else{
                printf("Start Listening,Port=%d\r\n",Port);
        }
        //open serial

        fd_serial=   openserial(SERIAL_PATH);
    if(fd_serial==-1)
    {
            close(fd_tcp);
            printf("openserial err msg:%d\r\n",err);
        return 0;
    }
    err=setserial(fd_serial,4,8,'n',1);//9600 8 n 1
    if(err==-1)
    {
            close(fd_tcp);
            close(fd_serial);
            printf("setserial err msg:%d\r\n",err);
        return 0;
    }

        while(1)
        {
                err=accept_cmd(fd_tcp,fd_serial,&addr_ser);
                if(err==8)break;
                printf("Accept msg:%d\n",err);
        }
        close(fd_tcp);
        close(fd_serial);
        printf("Bye!\r\n");
        return 0;
}


CoreControler_Single.zip

127.27 KB, ÏÂÝd´Î”µ(sh¨´): 23, ÏÂÝd·e·Ö: ºÚŽÅ -5

˜äÝ®ÅÉ´®¿Útcp͸?j¨¬ng)?/p>


×÷Õß: lylus    •r(sh¨ª)ég: 2019-4-13 20:11
¸ÐÖx´óÀÐØ•«I(xi¨¤n)£¬ÏÂÝdÓÃÓ㬎Í픡£




šgÓ­¹âÅR (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1