实例三、直接使用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吗?
telnet可以连说明服务端正常,那就是客户端代码问题了