Tcpsocket

qt服务器:

#include <QCoreApplication>
#include <stdlib.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <QDebug>

#define PORT 3880
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    int listenfd;
    int confd;
    int n;
    char buf[100];
    socklen_t clientInfo;  // socket len
    struct sockaddr_in cliaddr,serverAddr;

    qDebug()<<"创建socket套接字"<<endl;
    listenfd = socket(AF_INET,SOCK_STREAM,0);
    serverAddr.sin_family = AF_INET;
    serverAddr.sin_addr.s_addr= htonl(INADDR_ANY);
    serverAddr.sin_port=htons(PORT);

    qDebug()<<" connection。。。。"<<endl;
    bind(listenfd,(struct sockaddr*)&serverAddr,sizeof(serverAddr));
    listen(listenfd,8);

    while(true)
    {
        clientInfo = sizeof(cliaddr);
        confd = accept(listenfd,(struct sockaddr*)&cliaddr,&clientInfo);

        if ((n = recv(confd,buf,100,0))>0)
        {
            qDebug()<<"recevie data is:"<<buf<<endl;
        }

        qDebug()<<"socket information:"<<confd<<endl;

        qDebug()<<"client ip:"<<cliaddr.sin_addr.s_addr<<endl;
        if(!fork())
        {
            close(listenfd);
             while((n = recv(confd,buf,100,0))>0)
             {
                 puts(buf);
             }
        }
//        close(confd);
//        exit(0);
    }

    close(listenfd);



    return a.exec();
}



ios客户端:

#import "ViewController.h"

#include <sys/socket.h>

#include <netinet/in.h>

#include <unistd.h>

#include <arpa/inet.h>


#define PORT 3880;

@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


-(IBAction)click:(id)sender

{

    NSLog(@"connection server");

    struct sockaddr_in seraddr;

    char sendLine[100] = "HELLO WORLD";

    

    int sockfd = socket(AF_INET, SOCK_STREAM, 0);

    if(sockfd <0)

    {

        int temp = errno;

        NSLog(@"%d",errno);

    }

    memset(&seraddr, 0, sizeof(seraddr));

    seraddr.sin_family = AF_INET;

    seraddr.sin_addr.s_addr = inet_addr("192.168.3.166");

    seraddr.sin_port = htons(3880);

    

    int fd;

    int conInfo = connect(sockfd, (struct sockaddr*)&seraddr, sizeof(seraddr));

    if(conInfo<0)

        NSLog(@"connection information error: ");

//    while (fgets(sendLine, 100, stdin) != NULL) {

//        send(fd,sendLine,strlen(sendLine),0);

//    }

     send(fd,sendLine,strlen(sendLine),0);

    

}

@end



















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值