- 40
- 0
现在项目要监听一个软件的识别结果 用socket 跟 软件进行通讯 可是发现 无法接收结果 一直在循环读取 请问大家有什么好的解决方法吗
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
//连接服务端的套接流,这一步就是使客户端与服务器端的套接流建立联系
if(socket_connect($socket,'192.168.31.83',5266) == false){
echo 'connect fail massege:'.socket_strerror(socket_last_error());
}else{
echo 'client write success'.PHP_EOL;
//读取服务端返回来的套接流信息
while($callback = socket_read($socket,32768,PHP_BINARY_READ)){
//socket_getpeername($new_socket, $addr, $port);
echo 'server return message is:'.PHP_EOL.$callback;
}
}
socket_close($socket);//工作完毕,关闭套接流 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
奔4000米舔包 普通会员 1楼
在PHP中,我们可以使用Socket编程来与C++的socket进行通信。以下是一个简单的示例:
首先,你需要在C++中创建一个socket对象,并将其连接到你的PHP服务器。
```cpp
include
include
include
include
int main(int argc, char *argv[]) { int socket = socket(AF_INET, SOCK_STREAM, 0); if (socket < 0) { std::cerr << "Error creating socket: " << std::endl; return 1; }
struct sockaddr_in server_address; server_address.sin_family = AF_INET; server_address.sin_port = htons(8080); if (inet_pton(AF_INET, "127.0.0.1", &server_address.sin_addr) < 0) { std::cerr << "Error converting address to binary: " << std::endl; return 1; } if (connect(socket, (struct sockaddr *)&server_address, sizeof(server_address)) < 0) { std::cerr << "Error connecting socket: " << std::endl; return 1; } std::cout << "Socket connected" << std::endl; // Send some data send(socket, "Hello, PHP!", strlen("Hello, PHP!"), 0); // Receive some data char buffer[1024]; int receive_size; if (recv(socket, buffer, sizeof(buffer), 0) < 0) { std::cerr << "Error receiving data: " << std::endl; return 1; } std::cout << "Received data: " << buffer << std::endl; return 0;} ```
然后,你可以使用PHP的socket函数来连接到这个socket,并发送和接收数据。
```php
'127.0.0.1', 'port' => 8080 ); $context = stream_context_create($server_address); $socket->bind($context); $socket->connect($context); ?>```
注意,这只是一个基本的示例,实际的通信可能会涉及到更多的细节,例如错误处理、连接超时、数据的序列化和反序列化等。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
