客户端websocket 无法连接上PHP socket问题

本帖最后由 d6965921d 于 2014-07-16 10:25:53 编辑

我客户端是用c++写得websocket

客户端我请求的地址是ws://127.0.0.1:100322 (我请求ws://echo.websocket.org这个是可以的说明客户端代码是没问题的 问题就在服务端)

输出

[1405476678:7805] NOTICE: Initial logging level 7

[1405476678:7806] NOTICE: Library version: 1.3 1544a2a

[1405476678:7806] NOTICE:  Started with daemon pid 0

[1405476678:7806] NOTICE:  static allocation: 4436 + (12 x 256 fds) = 7508 bytes

[1405476678:8329] WARN: problems parsing header

PHP 写的socket

error_reporting(E_ALL);

set_time_limit(0);

//ob_implicit_flush();

$address = '127.0.0.1';

$port = 100322;

//创建端口

if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {

echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n";

}

//绑定

if (socket_bind($sock, $address, $port) === false) {

echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";

}

//监听

if (socket_listen($sock, 5) === false) {

echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n";

}

do {

//得到一个链接

if (($msgsock = socket_accept($sock)) === false) {

echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n";

break;

}

//welcome  发送到客户端

$msg = "server send:welcome
";

socket_write($msgsock, $msg, strlen($msg));

echo 'read client message\n';

$buf = socket_read($msgsock, 8192);

$talkback = "received message:$buf\n";

echo $talkback;

if (false === socket_write($msgsock, $talkback, strlen($talkback))) {

echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."\n";

} else {

echo 'send success';

}

socket_close($msgsock);

} while(true);

//关闭socket

socket_close($sock);

?>

以下是客户端发到服务端 PHP socket的输出

192:socket apple$ php index.php

read client message\nreceived message:GET / HTTP/1.1

Pragma: no-cache

Cache-Control: no-cache

Host: 127.0.0.1

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Key: nfvpsG0kAZkYrfZQkptpUA==

Origin: 127.0.0.1

Sec-WebSocket-Protocol: default-protocol

Sec-WebSocket-Extensions: deflate-frame

Sec-WebSocket-Version: 13

send success

------解决方案--------------------

你的php socket服务器没有完成websocket握手,建议你看下websocket 协议相关文档,或者参考下别人怎么写的,比如下面的代码包含了websocket握手及发送websocket消息

https://github.com/walkor/workerman-chat/blob/master/applications/Chat/Event.php

php socket链接不上,客户端websocket 无法连接上PHP socket有关问题相关推荐

  1. php websocket 连接已断开连接,客户端websocket 无法连接上PHP socket问题

    我客户端是用c++写得websocket 客户端我请求的地址是ws://127.0.0.1:100322 (我请求ws://echo.websocket.org这个是可以的说明客户端代码是没问题的 问 ...

  2. TCP:利用Socket编程技术实现客户端向服务端上传一个图片。

    问题: 利用Socket编程技术实现客户端向服务端上传一个图片的程序. 客户端: import java.io.*; import java.net.Socket;public class clien ...

  3. 275mib为什么不能联网_为什么家里的无线网手机上明明已经显示连接上了,可就是不能用是怎么回事...

    手机连接家中WIFI显示已经连接成功,并获取到了IP地址,但是就是不能上网.这是很多人有过类似的经历.那么为什么家里的无线网手机上明明已经显示连接上了,可就是不能用是怎么回事?造成这样的问题原因比较多 ...

  4. 基于 TCP Socket 的服务器与客户端的简单连接

    简单的讲下流程: 1. 服务器会创建一个监听 socket, 用来监听客户端的连接请求,接着配置一下监听 socket 的 IP.port.protocol 2. 绑定配置好的信息 以及监听 sock ...

  5. 荣耀6手机常显示无法链接服务器怎么处理,华为手机连接上WiFi上不了网怎么办...

    华为手机(Mate7,荣耀6 Plus,荣耀6,P7) 连接上WiFi上不了网怎么办每当小编被遇到这样的问题,小编都会深深的醉一把.这样的问题就应该被消灭在火星上,谁让他来地球的.网络就像一张大网,哪 ...

  6. 网站显示未连接上服务器,网站未连接上服务器是什么意思

    网站未连接上服务器就是没有连接到相关的服务器登录不了,或者对方的服务器没有打开.服务器是计算机的一种,它比普通计算机运行更快.负载更高.价格更贵. 本教程操作环境:windows7系统.Dell G3 ...

  7. 如何测试服务器上数据库服务器能否连接上

    一般看数据库服务器是否能连接上,如果有SQL  Server直接服务器名账户密码连一下就知道了 但是如果没有要怎么快速的判断呢? 1.桌面右击新建一个文本文件 2.重命名为test.udl,名字随便取 ...

  8. 能用网络但是个个计算机不能连上,为什么无线网络连接上却不能上网,小编教你电脑连上无线网却不能上网怎么办...

    最近用户在使用电脑的时候,遇到了一个奇怪的现象,连接无线以后却不能上网,重启计算机还是一样,用手机连接上却能上网,应该不是网络的问题,难道是电脑坏了,经过多次检查,终于找到了解决的方法,下面,小编给大 ...

  9. vscode连接虚拟机远程连接不上,xshell能连接上的问题

    写在前面 由于这个问题用了很久的时间也没有查到原因,而网上又没有我这个问题的描述.特此记录,希望可以帮助遇到相同问题的你们. 问题描述 虚拟机安装的时centos,网络连接用的NET模式. 用SSH服 ...

最新文章

  1. 实战mariadb-galera集群架构
  2. 希尔排序(缩小增量排序)(插入排序的优化版) C++代码实现及算法分析 恋上数据结构笔记
  3. linux 程序 加密码忘了怎么办,linux忘记了密码怎么办
  4. 自动化测试——接口自动化——requests用法
  5. Linux程序文件状态,linux 文件状态标识和IO操作方式
  6. C# 设定TextBox 只能输入正数/负数/小数 By KEYPRESS 事件
  7. android sdk环境配置_Mac 配置adb环境的方法
  8. unity设置一个物体是另一个物体的子物体
  9. 常用Linux命令--CPU和GPU查看
  10. 错误: 找不到或无法加载主类 Main
  11. DX11编程之计算着色过滤器
  12. SaaS启动阶段增长指南(上)
  13. Ubuntu20.04LTS 安装配置
  14. Java SE 易错题
  15. OLT基本操作及ONU的认证
  16. 数学建模:微分方程模型—常微分方程数值解算法及 Python 实现
  17. 数据库还原-bak文件
  18. linux x虚拟机占用硬盘太大,解决kvm虚拟机qcow2格式磁盘文件比实际空间占用大的问题 | 转 | leon的博客...
  19. 蓝桥杯 历届试题 高僧斗法(Nim博弈)
  20. 哈工大 博士肄业 计算机 李鸣鹏,16岁高分考上哈工大,从肄业生到低保户,为数学穷其一生...

热门文章

  1. .htaccess php设置,.htaccess更改php的配置
  2. git小乌龟pull报错 You asked to pull from the remote ‘origin‘...
  3. 【SAM模型超级进化】MobileSAM轻量化的分割一切大模型出现,模型缩小60倍,速度提高40倍,效果不减
  4. Spark支持的Join类型、Join的3种实现
  5. 地理坐标系、投影坐标系及对应WKIDW在生成缓冲区时的应用
  6. 第七十八章 SQL函数 $LENGTH
  7. 也发个网通客户端Dr.COM的破解版
  8. (schoolwork)Java多态
  9. Mybatis的if标签
  10. 47.逻辑卷管理2,物理卷详解,pvscan,pvcreate,pvremove,pvchange,pvdisplay