vb与php进行socket通信遇到的问题

来源:互联网 发布:tensorflow实战视频 编辑:程序博客网 时间:2024/05/16 19:42

vb代码和php代码进行socket通信时,发现php的socket_read函数总是取不到数据。查找了一些资料才发现,是VB socket 发送数据时必须要加上 chr(13)+chr(10),再就是不能缺少:DoEvents  才能在php端接收到数据。

VB代码

Private Sub Form_Load()
Tcpserver.LocalPort = 8000
   'Tcpserver.Bind
    Tcpserver.Listen    
    Label1.Caption = "目前没有客户端连入!"
End Sub


Private Sub Form_unload(Cancel As Integer)
Tcpserver.Close
End Sub


Private Sub tcpServer_ConnectionRequest(ByVal requestID As Long)
    If Tcpserver.State <> sckClosed Then Tcpserver.Close
    Tcpserver.Accept requestID
    Label1.Caption = "有客户端连入本机! IP:" & Tcpserver.RemoteHostIP
End Sub
 
Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long)
    Dim strData As String
    Tcpserver.GetData strData
   
    Text1.Text = Text1.Text & strData & vbCrLf
    Tcpserver.SendData "1服务器说:" + Chr(13) + Chr(10)
    Tcpserver.SendData "2服务器说:" + Chr(13) + Chr(10)
    'Tcpserver.SendData Chr(13) & Chr(10)
    DoEvents
    Tcpserver.Close    
    Tcpserver.Listen    
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代码

<?php

error_reporting(E_ALL);
set_time_limit(0);
$port=8000;
$ip="192.168.1.110";
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if($socket<0)
{echo "socket_create() failed: reason: ".socket_strerror(socket_last_error($socket));}
else
{echo "OK.<br>";}
echo "try to connect '$ip' port is '$port' ...<br>";
$result=socket_connect($socket,$ip,$port);
if($result < 0)
{echo "socket_connect()failed: reason:".socket_strerror(socket_last_error($socket))."\n";}
else
{echo "connect ok!<br>";}
$in="Ho\r\n";
$in.="first blood \r\n";
$out='';
if(!socket_write($socket,$in,strlen($in)))
{echo "socket_write() failed: reason:".socket_strerror(socket_last_error($socket))."\r\n";}
else
{echo "send message to server success!<br>";
echo "the content of send message is:<font color='red'>$in</font><br>";
}


while ($buffer = @socket_read($socket, 1024, PHP_NORMAL_READ)) 

    if (preg_match("/not connect/",$buffer)) { 
        echo "don`t connect\n"; 
        break; 
    } else { 
        //服务端传来的信息 
        echo "Buffer Data: " . $buffer . "<br>"; 
        echo "Writing to Socket<br>"; 
}
}
echo "close socket....<br>";
socket_close($socket);
echo "close ok \n";

?>


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 奶萌小团宠她觉醒了种田系统 巨星的大佬青梅 总裁的小撩精又生气了 开荒种田:农门辣妻有空间 签到后,小白花她在娱乐圈翻红了 江月照 魂飞魄散的上古大仙在修真界诈尸 快穿:大佬她又抢了反派剧本 夫人她总想逃 穿成阴戾反派未来嫂嫂 上神大人他偏甜系啊 咸鱼后妈带崽在综艺当对照组 系统BUG让我成了舔包专业户 快穿:系统有的是力气和手段 当我的霸总老公有了读心术 穿成炮灰渣妻后我和反派开农场 前任小姐姐帅又飒 弄潮1990从厂长开始 光阴之外 心动侵占 重回逃荒开端,手握空间来逆袭 重生之网红教父 蛮荒求生:反派大佬被迫种田 玄学大佬在星际重建地府 总裁又惹火夫人了 农门空间:重生娇娘撩糙汉 重生后我弃了天运之子 快穿:绑定系统后我疯狂崩人设 慕爷你虐错了夫人就是白月光 欢乐班 快穿之反派今天也在求负责 喜提娇夫:快穿作精她被迫崛起了 修真大佬都是我 唐人的餐桌 重生之大小姐她换了黑莲花剧本 重回九零做学霸 穿越星际之直播探险生活 我在古代做美食博主 小机器人每天都在劝我追校草 救命!隐婚老公当着全球撩我 仙子她一心修仙