C#套接字使用
来源:互联网 发布:北师珠网络教学 编辑:程序博客网 时间:2024/06/05 06:50
服务端
流程图
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;namespace Server{ class Program { static void Main(string[] args) { //establish the local end point for the socket IPHostEntry ipHost = Dns.Resolve("localhost"); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11); //create a Tcp/Ip Socket Socket sListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //bind the socket to the local endpoint and listen to the incoming sockets try { sListener.Bind(ipEndPoint); sListener.Listen(10); //这里的参数定义了backlog,它指定队列中挂起的连接的最大数量。 //在上面的代码中,括号中的参数允许队列中有10个连接 //Start listening for connections while (true) { Console.WriteLine("Waiting for a connection on port{0}", ipEndPoint); //program is suspended while waiting for an incoming connection Socket handler = sListener.Accept(); string data = null; //we got the client attempting to connect while (true) { byte[] bytes = new byte[1024]; int bytesRec = handler.Receive(bytes); data += Encoding.ASCII.GetString(bytes, 0, bytesRec); if (data.IndexOf("<TheEnd>") > -1) { break; } } //show the data on the console Console.WriteLine("Text Received:{0}", data); string theReply = "Thank you for those" + data.Length.ToString() + "characters.."; byte[] msg = Encoding.ASCII.GetBytes(theReply); handler.Send(msg); handler.Shutdown(SocketShutdown.Both); handler.Close(); } } catch (Exception e) { Console.WriteLine(e.ToString()); } } }}
客户端
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { byte[] bytes = new byte[1024]; //connect to a Remote device try { //Establish the remotee end poingt for the socket IPHostEntry ipHost = Dns.Resolve("localhost"); IPAddress ipAddr = ipHost.AddressList[0]; IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11); Console.WriteLine("Waiting for a connection on port{0}", ipEndPoint); Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //Connect the socket to the remote endPoint sender.Connect(ipEndPoint); Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString()); string theMessage = "This is a test"; byte[] msg = Encoding.ASCII.GetBytes(theMessage + "<TheEnd>"); //send the data through the socket int byteSent = sender.Send(msg); int bytesRec = sender.Receive(bytes); Console.WriteLine("The Server says:{0}", Encoding.ASCII.GetString(bytes, 0, bytesRec)); //Release the socket sender.Shutdown(SocketShutdown.Both); sender.Close(); } catch (Exception e) { Console.WriteLine("Exception:{0}", e.ToString()); } } }}
流程图
0 0
- C#套接字使用
- C#使用异步客户端套接字
- C# 套接字2
- c#套接字
- c# socket套接字
- C# 套接字1(转)
- udp套接字编程 C#
- C#中的套接字基本概念
- C#套接字学习总结
- 套接字的使用
- 套接字的使用
- 使用异步客户端套接字
- 使用SymbianOS套接字API
- socket套接字使用范例
- 原始套接字的使用
- 原始套接字的使用
- netlink套接字的使用
- 使用TCP/ IP套接字
- 项目中第一次做图片上传和下载功能过程>>>
- 函数模板和类模板
- 002_Http之介绍
- Eclipse中同时打开多个Console
- PHP中如何判断一个字符串是否是合法的日期模式
- C#套接字使用
- opencl: C++ 接口(cl.hpp)创建kernel
- Java基础知识(一)
- centos的nginx安装
- Contest Hunter - IHHH
- poj-3112 Pie
- 【漫画解读】HDFS存储原理
- 安卓布局:android:gravity 与 andorid:layout_gravity的区别
- python matplotlib绘图时图例显示问题