用c写个socket去连接workerman 创建的tcp 端口 ,一直连接不上.

wangzhibin

实例三、直接使用TCP传输数据
创建tcp_test.php

<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';

// 创建一个Worker监听2347端口,不使用任何应用层协议
$tcp_worker = new Worker("tcp://0.0.0.0:2347");

// 启动4个进程对外提供服务
$tcp_worker->count = 4;

// 当客户端发来数据时
$tcp_worker->onMessage = function($connection, $data)
{
    // 向客户端发送hello $data
    $connection->send('hello ' . $data);
};

// 运行worker
Worker::runAll();

服务端用的这个例子

c写的一个小例子

int main(int argc,char** argv){

    int client_sockfd;
    int len;
    struct sockaddr_in remote_addr;
    char buf;

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

    remote_addr.sin_family=AF_INET;//ip
    remote_addr.sin_addr.s_addr=inet_addr("120.24.36.177");
    remote_addr.sin_port=htons(2347);

    if(client_sockfd=socket(AF_INET,SOCK_STREAM,0)<0){
        ALOGD("socket creat err\n");
        return -1;
    }

    if(connect(client_sockfd,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr))==-1){
        ALOGD("socket connect err\n");
        return -1;
    }

connect时就错误了

但是用telnet 120.24.36.177 2347 是可以正常通信的

请问下为什么连不上了,有谁能提供个用c写的demo吗?

阅读 2593
1个回答

walkor

telnet可以连说明服务端正常,那就是客户端代码问题了

  • 暂无评论