c++和PHP的套接字连接
C++ and PHP socket connection
我想使用php连接到我的c++服务器…到目前为止,我得到了:
Server.cpp
#include <winsock2.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
WSADATA wsaData;
SOCKET mySocket;
SOCKET myBackup;
SOCKET acceptSocket;
sockaddr_in myAddress;
// setup WSA and socket....
if( WSAStartup( MAKEWORD(2, 2), &wsaData ) != NO_ERROR )
{
cerr<<"Socket Initialization: Error with WSAStartupn";
system("pause");
WSACleanup();
exit(10);
}
//Create a socket
mySocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( mySocket == INVALID_SOCKET )
{
cerr<<"Socket Initialization: Error creating socket"<<endl;
system("pause");
WSACleanup();
exit(11);
}
myBackup = mySocket;
//bind
myAddress.sin_family = AF_INET;
myAddress.sin_addr.s_addr = inet_addr( "0.0.0.0" );
myAddress.sin_port = htons( 25555 );
if ( bind ( mySocket, (SOCKADDR*) &myAddress, sizeof( myAddress) ) == SOCKET_ERROR )
{
cerr<<"ServerSocket: Failed to connectn";
system("pause");
WSACleanup();
exit(14);
}
//listen
if ( listen ( mySocket, 10 ) == SOCKET_ERROR )
{
cout<<"ERR: ServerSocket: Error listening on socketn";
system("pause");
WSACleanup();
exit(15);
}
cout<<"srv started. listeninig...n";
//accept
acceptSocket = accept( myBackup, NULL, NULL );
while ( acceptSocket == SOCKET_ERROR )
{
acceptSocket = accept( myBackup, NULL, NULL );
}
mySocket = acceptSocket;
cout<<"done.n";
return 0;
}
和PHP客户端
<?php
$port = 25555;
$socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
#socket_bind($socket,'',$port);
socket_connect($socket, '/my_ip/', $port);
echo 'connecting...';
?>
我不知道该怎么办。
您需要在PHP中进行正确的检查以确保一切正常。
试试这个:
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
die("socket_create() failed: Reason: " . socket_strerror(socket_last_error()) . "nn");
return false;
}
echo("Attempting to connect to '{$IP}' on port '{$PORT}'");
$result = socket_connect($socket, $IP, $PORT);
if ($result === false) {
echo("socket_connect() failed. Reason: ($result) " . socket_strerror(socket_last_error($socket)) . "nn");
return false;
} else {
echo "OK.nn";
}
检查错误码…
socket_create
socket_create() returns a socket resource on success, or FALSE on error.
和
socket_connect
Returns TRUE on success or FALSE on failure.
The error code can be retrieved with socket_last_error().
This code may be passed to socket_strerror() to get a textual explanation of the error.
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- 如何在 2 台主机之间保持 UDP 套接字连接打开
- Opencv 不适用于套接字连接
- C++通过套接字连接发送矢量
- mbed 套接字连接需要很长时间
- 重用多个请求的相同套接字连接
- C++ Linux 上的套接字连接
- 套接字连接在主功能内部但不在功能内部
- 套接字连接上的缓冲区溢出
- 套接字连接()被误认为是QT connect()
- 返回打开的插座连接/留下套接字连接打开C
- 当试图连接到无法到达的计算机时,C 套接字连接被卡住
- C# 客户端到C++服务器 Tcp 套接字连接错误
- C [UDP]如何跟踪服务器上的所有连接(客户端)套接字连接
- 使用C 安全套接字连接
- 在C 中每分钟之后,如何检查套接字连接
- 正在创建多个TCP套接字连接
- 为什么我不能通过套接字连接android和PC
- 从分离的线程中止套接字连接