c#socket通信,转载留自己学习用
2013-10-19 11:13
302 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; //添加Socket类 using System.Net; using System.Net.Sockets; namespace SockeConsoleServer { class Program { static void Main(string[] args) { int port = 2000; string host = "127.0.0.1"; //创建终结点 IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip,port); //创建Socket并开始监听 Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //创建一个Socket对象,如果用UDP协议,则要用SocketTyype.Dgram类型的套接字 s.Bind(ipe); //绑定EndPoint对象(2000端口和ip地址) s.Listen(0); //开始监听 Console.WriteLine("等待客户端连接"); //接受到Client连接,为此连接建立新的Socket,并接受消息 Socket temp = s.Accept(); //为新建立的连接创建新的Socket Console.WriteLine("建立连接"); string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; bytes = temp.Receive(recvBytes,recvBytes.Length,0); //从客户端接受消息 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes); //给Client端返回信息 Console.WriteLine("server get message:{0}",recvStr); //把客户端传来的信息显示出来 string sendStr = "ok!Client send message successful!"; byte[] bs = Encoding.ASCII.GetBytes(sendStr); temp.Send(bs,bs.Length,0); //返回信息给客户端 temp.Close(); s.Close(); Console.ReadLine(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; //添加用于Socket的类 using System.Net; using System.Net.Sockets; namespace SocketConsoleClient { class Program { static void Main(string[] args) { try { int port = 2000; string host = "127.0.0.1"; //创建终结点EndPoint IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip, port); //把ip和端口转化为IPEndPoint的实例 //创建Socket并连接到服务器 Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建Socket Console.WriteLine("Connecting..."); c.Connect(ipe); //连接到服务器 //向服务器发送信息 string sendStr = "Hello,this is a socket test"; byte[] bs = Encoding.ASCII.GetBytes(sendStr); //把字符串编码为字节 Console.WriteLine("Send message"); c.Send(bs, bs.Length, 0); //发送信息 //接受从服务器返回的信息 string recvStr = ""; byte[] recvBytes = new byte[1024]; int bytes; bytes = c.Receive(recvBytes, recvBytes.Length, 0); //从服务器端接受返回信息 recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes); Console.WriteLine("client get message:{0}", recvStr); //回显服务器的返回信息 Console.ReadLine(); //一定记着用完Socket后要关闭 c.Close(); } catch (ArgumentException e) { Console.WriteLine("argumentNullException:{0}", e); } catch (SocketException e) { Console.WriteLine("SocketException:{0}",e); } } } }
相关文章推荐
- 转载ACM学习建议(以此鼓励自己)
- [转载]cocos2d-x学习笔记3:更改HelloWorld,建立自己的小项目
- 第一篇,先激励一下自己,转载某黑客论坛上的经典学习文章
- 浏览器兼容问题,一直是自己最头疼,一直回避的问题,今天看得到了一些启发,发奋今天开始研究这个,哈哈,以下为转载文章,好好学习。
- 去OpenCVManager,大部分为转载,仅当自己学习使用
- java过滤器(转载)自己学习
- java 拦截器、过滤器、监听器 (转载,自己学习)
- (转载)(指引自己)Linux学习路上的体会()
- Cacti完全使用手册 ( 让你快速个性化使用Cacti ) 转载为了自己学习
- 转载ACM学习建议(以此鼓励自己)
- 学习重要,还是人脉重要? 转载:《打造人脉不如打造自己》
- java后台把数据类型装换为json类型(转载,自己学习)
- 学习软件开发应该看的书,转载的,方便自己
- 如何确定自己是否适合做程序员?(转载学习)
- 对自己的学习方式的思考(转载)
- YOLO2解读,训练自己的数据及相关转载以供学习
- C#类型转换(转载&摘抄&整理:供自己查阅学习)
- 转载LINQ优点 自己学习用的
- spring注解(转载,自己学习)
- 转载:Ant学习笔记——自己构建Ant编译环境