一开始对socket不太理解,做起东西很模糊,后来做过定位请求的项目,对socket的理解更清楚了。
贴一下示例代码:
SERVER端
<?php
//确保在连接客户端时不会超时
set_time_limit
(0
);
//设置IP和端口号
$address
=
'127.0.0.1'
;
$port
=
2009
; //调试的时候,可以多换端口来测试程序!
//创建一个SOCKET
if
(($sock
=
socket_create
(AF_INET
,
SOCK_STREAM
,
SOL_TCP
))<
0
)
{
echo
"socket_create() 失败的原因是:"
.
socket_strerror
($sock
).
"<br>"
;
}
//绑定到socket端口
if
(($ret
=
socket_bind
($sock
,
$address
,
$port
))<
0
)
{
echo
"socket_bind() 失败的原因是:"
.
socket_strerror
($ret
).
"<br>"
;
}
//开始监听
if
(($ret
=
socket_listen
($sock
,
4
))<
0
)
{
echo
"socket_listen() 失败的原因是:"
.
socket_strerror
($ret
).
"<br>"
;
}
do
{
if
(($msgsock
=
socket_accept
($sock
)) <
0
)
{
echo
"socket_accept() failed: reason: "
.
socket_strerror
($msgsock
) .
"
\n
"
;
break
;
}
//发到客户端
$msg
=
"<font color=red>欢迎进入服务器!</font><br>"
;
socket_write
($msgsock
,
$msg
,
strlen
($msg
));
echo
"读取客户端发来的信息<br>"
;
$buf
=
socket_read
($msgsock
,
8192
);
$talkback
=
"收到的信息:
$buf
<br>"
;
echo
$talkback
;
/* if(socket_write($msgsock, $talkback, strlen($talkback))<0)
{
echo "socket_write() failed: reason: " . socket_strerror($msgsock) . "\n";
}
else
{
echo "发送成功";
}*/
//echo $buf;
socket_close
($msgsock
);
}
while
(true
);
socket_close
($sock
);
?>
CLIENT端
<?php
error_reporting
(E_ALL
);
set_time_limit
(0
);
echo
"<h2>TCP/IP Connection</h2>
\n
"
;
$service_port
=
2009
;
$address
=
"127.0.0.1"
;
$socket
=
socket_create
(AF_INET
,
SOCK_STREAM
,
SOL_TCP
);
if
($socket
<
0
)
{
echo
"socket_create() failed: reason: "
.
socket_strerror
($socket
) .
"
\n
"
;
}
else
{
echo
"OK.
\n
"
;
}
echo
"试图连接 '
$address
' 端口 '
$service_port
'...<br>"
;
$result
=
socket_connect
($socket
,
$address
,
$service_port
);
if
($result
<
0
)
{
echo
"socket_connect() failed.
\n
Reason: (
$result
) "
.
socket_strerror
($result
) .
"
\n
"
;
}
else
{
echo
"连接OK<br>"
;
}
$in
=
"Hello
\r\n
"
;
$in
.=
"我是Chester
\r\n
"
;
$out
=
''
;
$out1
=
''
;
if
(!
socket_write
($socket
,
$in
,
strlen
($in
)))
{
echo
"socket_write() failed: reason: "
.
socket_strerror
($socket
) .
"
\n
"
;
}
else
{
echo
"发送到服务器信息成功!<br>"
;
echo
"发送的内容为:<font color='red'>
$in
</font> <br>"
;
}
while
($out
=
socket_read
($socket
,
8192
))
{
echo
"接收服务器回传信息成功!<br>"
;
echo
"接受的内容为:"
,
$out
;
}
echo
"关闭SOCKET...<br>"
;
socket_close
($socket
);
echo
"关闭OK<br>"
;
?>
先运行server.php
再运行client.php
分享到:
相关推荐
**PHP Socket 编程实例详解** 在Web开发中,Socket编程是一种基础且强大的技术,它允许服务器和客户端之间进行低级别的通信。PHP作为一款广泛使用的服务器端脚本语言,也支持Socket编程,使得开发者能够创建高效、...
6. **Socket编程**:PHP的socket函数允许开发者直接操作TCP/IP套接字,实现低级别的网络通信,比如创建服务器或客户端,处理TCP连接和UDP数据包。 7. **API接口调用**:PHP可以方便地与其他Web服务进行交互,通过...
这本教程旨在帮助初学者快速入门 PHP Socket 编程,并通过实例和讲解来加深理解。 #### 标签:PHP Socket 该标签明确了本教程的主题是关于 PHP 语言中的 Socket 编程技术。 #### 部分内容知识点详解: ##### ...
TCP/IP协议与Socket编程 网络编程的基础在于理解TCP/IP协议栈和Socket接口。PHP提供了强大的Socket函数库,允许开发者创建服务器端和客户端应用程序,实现数据在网络间的传输。通过Socket,PHP可以进行更底层的网络...
这个实例对于学习PHP Socket编程是非常有价值的,它能帮助开发者理解网络通信的基本原理,以及如何在PHP中实现这一过程。通过实践这个实例,你可以深入了解客户端和服务器如何交互,以及如何处理网络数据的发送和...
在实际的应用中,了解和掌握Socket编程可以极大地扩展PHP在网络通信方面的应用范围,为开发者提供更加灵活的编程手段。需要注意的是,Socket编程需要对网络协议有较为深入的理解,同时也涉及到网络编程的一些安全...
PHP作为一种广泛使用的服务器端脚本语言,提供了丰富的功能来处理网络通信,其中就包括socket编程。本篇将深入探讨PHP socket实例的相关知识点,帮助你更好地理解和运用这一技术。 **PHP Socket基本概念** PHP中的...
在本篇文章中,我们将深入探讨PHP中的Socket编程,并结合具体代码实例来解析其核心概念。 #### 二、Socket编程的基本原理 ##### 1. 基础概念 - **Socket**:在计算机网络中,Socket是一种用于网络通信的端点抽象...
通过分析和理解这段代码,你可以更深入地掌握PHP Socket编程。 总结,PHP Socket提供了一种底层的方式来处理网络通信,允许开发者直接构造和发送HTTP请求。无论是GET还是POST,都可以通过创建Socket、连接服务器、...
- **创建 Socket**:使用 `Socket` 类实例化一个 Socket 对象。 - **连接 Socket**:使用 `connect` 方法进行连接。 - **读取数据**:使用事件监听器监听 `DATA` 事件来接收数据。 - **写入数据**:使用 `...
总之,PHP通过Socket接口与Java服务端进行通信是一个基础的网络编程示例,它展示了如何在不同语言之间进行数据交换。然而,在实际应用中,我们需要考虑更多关于安全性和稳定性的因素,以确保系统的可靠性和安全性。
### PHP使用Socket编程知识点详解 #### 一、Socket编程简介 Socket编程是一种允许不同计算机间进行通信的方法。在互联网上,任何两台计算机之间如果想要互相通信,都需要通过Socket来进行数据传输。Socket提供了...
SOCKET是网络编程中的一个接口,允许应用程序通过网络发送和接收数据。在PHP中,我们可以使用`socket_create`函数创建一个SOCKET,然后通过`socket_bind`绑定到特定的IP地址和端口,接着`socket_listen`监听连接请求...
第10章 使用Socket编程 10.1 Socket基础 10.2 Socket功能函数 10.3 一个简单的TCP/IP服务器端和客户端实例讲解 10.4 本章小结 第11章 用户登录注册模块 11.1 数据库设计 11.2 最基本的注册模块 11.2.1 页面效果 ...
Java中的Socket编程通过***.ServerSocket和***.Socket类实现。ServerSocket用于创建服务器端的Socket,它可以在指定端口上监听进来的Socket连接请求。Socket类则用于与客户端进行通信。 6. 输入输出处理: 在Java...
在IT领域,网络编程是构建分布式系统和互联网应用程序的基础。TCP(传输控制协议)作为...结合web服务的实例,我们可以更好地掌握如何通过socket实现用户登录和多级页面的处理,为开发更复杂的网络应用打下坚实基础。
在PHP中,Socket编程是一种低级别的网络通信方式,它允许开发者直接通过套接字接口进行TCP/IP、UDP等网络通信。本篇文章将深入讲解如何在PHP环境中配置Socket并提供一个简单的服务器和客户端的示例。 ### 1. PHP ...
"PHP Socket UDP实时在线云消费机服务器端源码"是一个实例,它展示了如何利用PHP进行UDP协议的网络编程,以实现一个实时的在线云消费机服务器端。下面我们将深入探讨这个主题。 首先,`Socket`是计算机网络编程中的...
在现代网络开发中,使用PHP进行Socket编程是一种常见的需求,尤其在模拟HTTP请求方面。本文将深入探讨如何使用PHP的Socket编程来模拟HTTP的GET和POST请求。我们将从一个PHP类开始,该类能够构建HTTP请求并处理响应,...
本章主要讨论了网络编程的概述、数据包的捕获与分析、Socket编程、Winpcap编程以及电子邮件编程实例。 首先,网络编程概述介绍了网络编程的基本模式和语言。网络编程模式主要包括两种:客户机/服务器(C/S)模式和...