<?php$server = '127.0.0.1';
$port = 8888;$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if($socket < 0) {
echo socket_strerror($socket);
} else {
echo '成功<br />';
}
$result = @socket_connect($socket, $server, $port);$buf = '你好啊我';
$len = strlen($buf);socket_send($socket, $buf, $len, 0);socket_close($socket);?>
Option Explicit
Private Sub Form_Load()
tcpServer.LocalPort = 8888
tcpServer.Listen
lblstate.Caption = "目前没有客户端连入!"
End SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then tcpServer.Close
tcpServer.Accept requestID
lblstate.Caption = "有客户端连入本机! IP:" & tcpServer.RemoteHostIP
End SubPrivate Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData & vbCrLf & txtOutput.Text
End Sub
Private Sub txtSendData_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If tcpServer.State = sckConnected Then
tcpServer.SendData "服务器说:" & txtSendData.Text
txtOutput.Text = "服务器说" & txtSendData.Text & vbCrLf & txtOutput.Text
txtSendData.Text = ""
Else
MsgBox "目前没有连接的客户端!"
End If
End If
End Sub第一次正常 但是 第二次刷新 PHP页面的时候出现 如下错误 Warning: socket_send() [function.socket-send]: unable to write to socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 in E:\wamp\www\test\test3.php on line 19有时候VB会出现这样的错误
$port = 8888;$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if($socket < 0) {
echo socket_strerror($socket);
} else {
echo '成功<br />';
}
$result = @socket_connect($socket, $server, $port);$buf = '你好啊我';
$len = strlen($buf);socket_send($socket, $buf, $len, 0);socket_close($socket);?>
Option Explicit
Private Sub Form_Load()
tcpServer.LocalPort = 8888
tcpServer.Listen
lblstate.Caption = "目前没有客户端连入!"
End SubPrivate Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
If tcpServer.State <> sckClosed Then tcpServer.Close
tcpServer.Accept requestID
lblstate.Caption = "有客户端连入本机! IP:" & tcpServer.RemoteHostIP
End SubPrivate Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpServer.GetData strData
txtOutput.Text = strData & vbCrLf & txtOutput.Text
End Sub
Private Sub txtSendData_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
If tcpServer.State = sckConnected Then
tcpServer.SendData "服务器说:" & txtSendData.Text
txtOutput.Text = "服务器说" & txtSendData.Text & vbCrLf & txtOutput.Text
txtSendData.Text = ""
Else
MsgBox "目前没有连接的客户端!"
End If
End If
End Sub第一次正常 但是 第二次刷新 PHP页面的时候出现 如下错误 Warning: socket_send() [function.socket-send]: unable to write to socket [0]: 由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。 in E:\wamp\www\test\test3.php on line 19有时候VB会出现这样的错误
而你的VB程序那儿,只支持一个连接;
PHP刷新造成连接断开时,你的tcpServer并没有断开(VB端应该是不会接到通知的吧),因此不能接受新的连接请求。
winsock1.LocalPort = 8888
winsock1.Listen
End SubPrivate Sub winsock1_ConnectionRequest(ByVal requestID As Long)
If winsock1.State <> sckClosed Then winsock1.Close
winsock1.Accept requestID
Label1.Caption = "有客户端接入本机!IP:为" & winsock1.RemoteHostIPEnd SubPrivate Sub winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
winsock1.GetData strData
Text1.Text = strData
winsock1.Close
End Sub
我已经增加了 close 但是好像还是不行
在 winsock1.Close 下面加了 重新监听 就行了
winsock1.Listen