C#写的客户端连接 php的服务器端的小例子
2015-09-04 12:38
639 查看
C#写的客户端连接 php的服务器端的小例子
php的server 端
<?php
// server.php
set_time_limit( 0 );
ob_implicit_flush();
$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_bind( $socket, '127.0.0.1', 8880 );
socket_listen($socket);
$acpt=socket_accept($socket);
echo "> Acpt!\n";
while ( $acpt ) {
echo "> ";
$words= trim(fgets(STDIN));
if(strlen($words) === 0) $words = "\n";
socket_write($acpt,$words);
$hear=socket_read($acpt,1024);
echo "client>" . $hear . "\n" ;
if("bye"==$hear){
socket_shutdown($acpt);
break;
}
usleep( 1000 );
}
socket_close($socket);
echo "> bye bye\n";
?>
以交互式方法运行:
php -a server.php
C#写的客户端
public class Client
{
private static byte[] result = new byte[1024];
public string serverIp = "127.0.0.1";
public int severPort = 8880;
public Client(string serverIp, int serverPort)
{
this.serverIp = serverIp;
this.severPort = serverPort;
}
public void start()
{
//设定服务器IP地址
IPAddress ip = IPAddress.Parse(serverIp);
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try {
clientSocket.Connect(new IPEndPoint(ip, severPort));
Console.WriteLine("连接服务器成功");
} catch {
Console.WriteLine("连接服务器失败");
return;
}
int receiveLength;
while (clientSocket.Connected) {
receiveLength = clientSocket.Receive(result);
string sv_word = Encoding.ASCII.GetString(result, 0, receiveLength);
Console.WriteLine("Sever> {0}", sv_word);
if (sv_word.Trim() == "bye") break;
Console.Write("> ");
string words = Console.ReadLine();
if (string.IsNullOrEmpty(words)) words = "\n";
clientSocket.Send(Encoding.ASCII.GetBytes(words));
if (words.Trim() == "bye") break;
}
if(clientSocket.Connected) clientSocket.Close();
Console.WriteLine("> bye bye");
}
}
加入引入
using System.Net;
using System.Net.Sockets;
using System.Threading;
在某处调用
new Client("127.0.0.1", 8880).start();
php的server 端
<?php
// server.php
set_time_limit( 0 );
ob_implicit_flush();
$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_bind( $socket, '127.0.0.1', 8880 );
socket_listen($socket);
$acpt=socket_accept($socket);
echo "> Acpt!\n";
while ( $acpt ) {
echo "> ";
$words= trim(fgets(STDIN));
if(strlen($words) === 0) $words = "\n";
socket_write($acpt,$words);
$hear=socket_read($acpt,1024);
echo "client>" . $hear . "\n" ;
if("bye"==$hear){
socket_shutdown($acpt);
break;
}
usleep( 1000 );
}
socket_close($socket);
echo "> bye bye\n";
?>
以交互式方法运行:
php -a server.php
C#写的客户端
public class Client
{
private static byte[] result = new byte[1024];
public string serverIp = "127.0.0.1";
public int severPort = 8880;
public Client(string serverIp, int serverPort)
{
this.serverIp = serverIp;
this.severPort = serverPort;
}
public void start()
{
//设定服务器IP地址
IPAddress ip = IPAddress.Parse(serverIp);
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try {
clientSocket.Connect(new IPEndPoint(ip, severPort));
Console.WriteLine("连接服务器成功");
} catch {
Console.WriteLine("连接服务器失败");
return;
}
int receiveLength;
while (clientSocket.Connected) {
receiveLength = clientSocket.Receive(result);
string sv_word = Encoding.ASCII.GetString(result, 0, receiveLength);
Console.WriteLine("Sever> {0}", sv_word);
if (sv_word.Trim() == "bye") break;
Console.Write("> ");
string words = Console.ReadLine();
if (string.IsNullOrEmpty(words)) words = "\n";
clientSocket.Send(Encoding.ASCII.GetBytes(words));
if (words.Trim() == "bye") break;
}
if(clientSocket.Connected) clientSocket.Close();
Console.WriteLine("> bye bye");
}
}
加入引入
using System.Net;
using System.Net.Sockets;
using System.Threading;
在某处调用
new Client("127.0.0.1", 8880).start();
相关文章推荐
- PHP中的反射
- ThinkPHP 中 获取最后一次执行sql语句 和变量调试
- php设计模式专题附源码(适配器模式、模板模式、命令模式、单例模式、观察者模式)
- PHP单例模式
- HDPHP检测是否已经登录
- PHP5.2至5.6的新增功能详解
- EditPlus添加asm配置
- PHP工厂模式
- webService(php)的soap与nusoap服务端与客户端的通信
- Thinkphp 模型与表名定义
- PHP 中使用 SOAP
- PHP基础----PHP 与 MySQL----php操作数据库标准思路(自己总结的,没有标号)
- PHP基础----PHP 会话管理----24操作 Session
- PHP基础----PHP 会话管理----23操作 Cookie
- PHP基础----PHP 会话管理----22Cookie 和 Session 的概念与区别
- PHP基础----HTML表单的创建与提交----21上传文件
- PHP基础----HTML表单的创建与提交----20处理 POST 请求
- PHP基础----HTML表单的创建与提交----19处理 GET 请求
- PHP基础----HTML表单的创建与提交----18表单与 PHP
- PHP基础----常用库函数----17图片打水印实例