C#写的客户端连接 php的服务器端的小例子

php的server 端

  1. <?php
  2. // server.php
  3. set_time_limit( 0 );
  4. ob_implicit_flush();
  5. $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
  6. socket_bind( $socket, ‘127.0.0.1‘, 8880 );
  7. socket_listen($socket);
  8. $acpt=socket_accept($socket);
  9. echo "> Acpt!\n";
  10. while ( $acpt ) {
  11. echo "> ";
  12. $words= trim(fgets(STDIN));
  13. if(strlen($words) === 0) $words = "\n";
  14. socket_write($acpt,$words);
  15. $hear=socket_read($acpt,1024);
  16. echo "client>" . $hear . "\n" ;
  17. if("bye"==$hear){
  18. socket_shutdown($acpt);
  19. break;
  20. }
  21. usleep( 1000 );
  22. }
  23. socket_close($socket);
  24. echo "> bye bye\n";
  25. ?>

以交互式方法运行:

  1. php -a server.php

C#写的客户端

  1. public class Client
  2. {
  3. private static byte[] result = new byte[1024];
  4. public string serverIp = "127.0.0.1";
  5. public int severPort = 8880;
  6. public Client(string serverIp, int serverPort)
  7. {
  8. this.serverIp = serverIp;
  9. this.severPort = serverPort;
  10. }
  11. public void start()
  12. {
  13. //设定服务器IP地址
  14. IPAddress ip = IPAddress.Parse(serverIp);
  15. Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  16. try {
  17. clientSocket.Connect(new IPEndPoint(ip, severPort));
  18. Console.WriteLine("连接服务器成功");
  19. } catch {
  20. Console.WriteLine("连接服务器失败");
  21. return;
  22. }
  23. int receiveLength;
  24. while (clientSocket.Connected) {
  25. receiveLength = clientSocket.Receive(result);
  26. string sv_word = Encoding.ASCII.GetString(result, 0, receiveLength);
  27. Console.WriteLine("Sever> {0}", sv_word);
  28. if (sv_word.Trim() == "bye") break;
  29. Console.Write("> ");
  30. string words = Console.ReadLine();
  31. if (string.IsNullOrEmpty(words)) words = "\n";
  32. clientSocket.Send(Encoding.ASCII.GetBytes(words));
  33. if (words.Trim() == "bye") break;
  34. }
  35. if(clientSocket.Connected) clientSocket.Close();
  36. Console.WriteLine("> bye bye");
  37. }
  38. }

加入引入

  1. using System.Net;
  2. using System.Net.Sockets;
  3. using System.Threading;

在某处调用

  1. new Client("127.0.0.1", 8880).start();
时间: 2024-08-29 07:01:37

C#写的客户端连接 php的服务器端的小例子的相关文章

配置ORACLE 客户端连接到数据库

--================================= -- 配置ORACLE 客户端连接到数据库 --================================= Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中.所以无需配置客户端即可连接到服务器.Oracle 客户端连接到数据库依赖于Oracle Net.Oracle提供

1. 配置ORACLE 客户端连接到数据库

转载自:http://blog.csdn.net/leshami/article/details/5917103 Oracle 客户端连接到Oracle 数据库服务器貌似不同于SQL serve中的网络配置,其实不然,只不过所有的SQL server 运行于Windows平台,故很多配置直接集成到了操作系统之中.所以无需配置客户端即可连接到服务器.Oracle 客户端连接到数据库依赖于Oracle Net.Oracle提供了很多基于客户端或服务器的配置工具,需要搞清的是Oracle Net 中的

23Socket实现UDP服务器端和客户端连接传输

客户端 23UdpClient.cpp 代码: // 23UdpClient.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> //Windows套接字所需的头文件 #include <WINSOCK.H> //Windows套接字接口的库文件 #pragma comment(lib, "WSOCK32.LIB") //程序使用的WinSock主版本 #define

设置客户端连接PostgreSQL不需要密码

平常工作中,有时需要远端连接 PostgreSQL 数据库做些维护,例如远端备份等:如果备份脚本写在远端机器,备份的时候会弹出密码输入提示,那么脚本就不能后台执行,这里总结了几种不弹出密码输入提示的方法. --测试环境 目标库IP:  192.168.1.25/5432 : 数据库: Mydb :用户名:postgres 客户端IP:  192.168.1.26 --在 192.168.1.26  连接数据库 Mydb , 弹出密码提示 [email protected]> psql -h 19

Centos6.7+openvpn配置Linux客户端连接,基于证书访问(三)

Linux 做为客户端连接 openvpn 服务,同样需要安装 openvpn 的软件及相关软件. 和服务器端的配置一样,先做时间同步,并添加定时任务 /usr/sbin/ntpdate time.windows.com echo '#time sync' >> /var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1' >> /var/spool

Ruby操作MongoDB(进阶)-创建数据库客户端连接

在Ruby的MongoDB2.4.3驱动版本中,通过创建一个Mongo::Client对象来构建一个Ruby的数据库连接.Mongo::Client构造器提供两种构造方式:一是通过提供主机列表和一些可选参数,另外还有通过一个连接URI.创建好的数据库连接默认连接到admin数据库. 1.使用Mongo::Client创建数据库客户端连接 1.1. 单服务器模式创建数据库连接 在单服务器模式下创建数据库连接,只需提供一个主机连接参数.另外,还可以通过消除自动发现步骤强制将集群拓扑转换为单机模式.可

Oracle RAC 客户端连接负载均衡(Load Balance)

实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连接的负载均衡,一个是基于服务器端监听器(Listener)收集到的信息来将新的连接请求分配到连接数较少实例上的实现方式.本文主要讨论的是基于客户端连接的负载均衡,并给出演示. 与负载均衡配置之前的监听配置请参考              ORACLE RAC 监听配置 (listener.ora t

使用PL/SQL客户端连接远程oracle数据库

一直以来使用sql develope连接数据库,只要写上ip,用户名,密码,sid等就能连接,后来发现使用PL/SQL连接远程oracle数据库怎么连啊? 这里使用了修改oracle配置文件的方式: 配置文件路径为    D:\app\huyueyang\product\11.1.0\db_1\NETWORK\ADMIN 修改下面的tnsnames.ora,这个是你配置连接的配置文件,安装时候一般会有个默认的orcl实例 如: orcl= (DESCRIPTION = (ADDRESS = (P

OPC客户端连接远程OPC服务器配置

最近这几天一直研究OPC客户端远程连接OPC服务器问题,最开始由于对OPC不熟悉,大家都在摸索着前进,采取比较愚蠢的连接方式,在服务器端安装Step7 V5.5和Simatic Net 2007连个软件,在客户端也安装了Simatic Net 2007软件,两端都设置为"允许",这种方式可以正常让OPC客户端连接到OPC服务器端,但Simatic Net 2007是个很耗费内存的软件,开始我并不知道同事们以这种方式连接的,到了项目后期,才了解到,我的第一反应是这种连接方式肯定不是最好的