客户端发给socket一个请求,服务器端使用php处理完成后,怎样在php里断开这个socket连接
1个回答
展开全部
你好,我在知道看到你的另外一个提问
你说你用fopen()打开的socket,应该指的是客户端那边用fopen()建立与服务器的连接的吧
socket的机制是,有一个服务端,然后客户端连接服务端的时候,服务端可以通过accept来获取一个客户端socket对象,PHP手册的socket_close()的说明是这样的
void socket_close ( resource socket )
socket_close() closes the socket resource given by socket. 注: socket_close() can't be used on PHP file
resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or
socket_accept().
See also socket_bind(), socket_listen(), socket_create() and socket_strerror().
大概意思是socket_close(resource socket )中的socket不能是由fopen(), popen(), fsockopen(), or pfsockopen()这些方法产生的,只能是socket_create() or socket_accept()方法,前面那些方法应该是在客户端用的啊,你服务端用的应该是socket_accept(),为什么不能用socket_close来关闭呢
你说你用fopen()打开的socket,应该指的是客户端那边用fopen()建立与服务器的连接的吧
socket的机制是,有一个服务端,然后客户端连接服务端的时候,服务端可以通过accept来获取一个客户端socket对象,PHP手册的socket_close()的说明是这样的
void socket_close ( resource socket )
socket_close() closes the socket resource given by socket. 注: socket_close() can't be used on PHP file
resources created with fopen(), popen(), fsockopen(), or pfsockopen(); it is meant for sockets created with socket_create() or
socket_accept().
See also socket_bind(), socket_listen(), socket_create() and socket_strerror().
大概意思是socket_close(resource socket )中的socket不能是由fopen(), popen(), fsockopen(), or pfsockopen()这些方法产生的,只能是socket_create() or socket_accept()方法,前面那些方法应该是在客户端用的啊,你服务端用的应该是socket_accept(),为什么不能用socket_close来关闭呢
更多追问追答
追问
resourcesocket_accept ( resource$socket )在使用之前应该使用bind()进行绑定,在客户端使用的是java实现的,java里能进行资源的绑定吗?
追答
JAVA是这样的
服务端
ServerSocket ss = new ServerSocket(端口号01);
客户端
Socket s = new Socket(服务端地址,端口号01);
接着服务端可以通过Socket s = ss.accept()来获取客户端连接上的socket对象来对它操作
你说的bind方法是绑定端口号的,没有影响到服务端的使用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询