当前位置: 首页 > 知识库问答 >
问题:

使用套接字函数发送/接收数据

邢寒
2023-03-14

如何将数据从PHP页面发送到TCP端口?

<?php 
// parameters to connect to server
$ip = "192.168.1.3";
$port = "59995";
$data = "Hello";
$output = "";

// Create a TCP Stream Socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Connect to the server.
$result = socket_connect($socket, $ip, $port);

// Write to socket!
socket_write($socket, $data, strlen($data));

// Read from server
do 
{
  $line =@socket_read($socket,2048);
  echo $line. "\n";
} 
while ($data != "0");

// Close and return.
socket_close($socket);
?>

我正在使用它,但我不能使用任何数据!还有,你知道我怎么才能暂停吗?

有什么问题?

共有1个答案

林项明
2023-03-14

你的程序运行正常。如果它没有接收数据,可能是服务器的故障。当然,你想要

while ($line);

而不是

while ($data != "0");

在服务器关闭连接时让其停止。对于接收超时(例如7秒),您可以使用

socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO, array("sec"=>7, "usec"=>0));
 类似资料:
  • 问题内容: 我正在使用套接字连接我的Android应用程序(客户端)和Java后端服务器。每次与服务器通信时,我都希望从客户端发送两个数据变量。 1)某种消息(由用户通过界面定义) 2)消息的语言(由用户通过界面定义) 我该如何发送这些消息,以便服务器将每个消息解释为一个单独的实体? 在读取了服务器端的数据并做出了适当的结论之后,我想向客户端返回一条消息。(我想我会没事的) 因此,我的两个问题是如

  • 因此,我正在用Java编写一个程序,在DatagramSocket和DataGramPacket的帮助下发送和接收数据。问题是,当我发送数据/接收数据时,数据在我发送的程序中也会有所不同,但只是在某些情况下,比如: 但有时会起作用,比如:

  • 我想使用Qt UDP(不是TCP)套接字传输文件。所以我这样写代码: 看来要传输的Qt UDP数据包的最小大小是8192字节。接收方总是得到第一个数据包,但不能接收其他数据包。 我对Qt和网络编程的经验很少,所以我不知道我的猜想对不对。你能告诉我如何改变这些代码来支持在第一个数据包之后接收数据包,这样我就可以传输大数据了吗?

  • 我试着做一个简单的服务器-客户机套接字通信,但服务器似乎无法正常工作。无论何时发送或接收,我都会收到此错误: 非插座上的插座操作:非插座上的插座操作 奇怪的是,这只会在服务器发送时出现。客户似乎还可以:

  • 我必须对FTP服务器进行编码,而且我在数据传输方面遇到了问题。 我在linux上使用ftp命令来测试它,我目前正在使用,它发送工作目录中的文件/目录列表。一切正常(ftp打印文件列表),除了ftp打印以下警告: 我想删除该警告,我认为ftp需要二进制数据,但我不知道如何通过套接字发送这样的数据,我目前正在使用最基本的方式发送结果:

  • 问题内容: 我正在建立一个客户-服务器项目。 我需要的是客户端发送一个字符串,例如“ Pendu”,服务器接收该字符串并将一个名为“ Pendu”的对象发送回客户端。 这是我的代码: 该类在包中定义: 我的问题是: 首先,我执行服务器,然后看到控制台中显示的内容。 然后我执行客户端,在控制台中,我收到如下消息: 同时,服务器端未显示任何新内容。 现在,我停止客户端,并显示服务器的所有其他消息: 当