c# socket tcp服务器端连接客户端精简实例
2018-02-16 17:04
399 查看
为了助于理解tcp连接核心,没有写上多余的代码。
使用方法:建立两个控制台,将以下代码copy上,即可实现。
效果:客户端的连接上后,服务器端会出现“服务器接收到了相应”,同时客户端会出现服务器端发送过来的信息“接收到了”。
代码如下:
服务器端:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace ServerTest
{
class Program
{
private IPEndPoint ipEndPoint;
private Socket serverSocket;
private Socket clientSocket;
static Program p = new Program();
private byte[] data = new byte[1024];
static void Main(string[] args)
{
p.ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6688);
p.serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
p.serverSocket.Bind(p.ipEndPoint);
p.serverSocket.Listen(0);
p.serverSocket.BeginAccept(p.CallBack, null);
Console.WriteLine("服务器接收到了相应");
Console.ReadLine();
}
private void CallBack(IAsyncResult ar)
{
clientSocket = serverSocket.EndAccept(ar);
clientSocket.Send(Encoding.UTF8.GetBytes("接收到了"));
serverSocket.BeginAccept(p.CallBack, null);
}
}
}客户端:using System;
using System.Threading;
using System.Net.Sockets;
namespace ConsoleApp4
{
class Program
{
private const string IP = "127.0.0.1";
private const int PORT = 6688;
private Socket clientSocket;
private byte[] data = new byte[1024];
static Program p = new Program();
static void Main(string[] args)
{
Console.WriteLine("开始");
p.clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
p.clientSocket.Connect(IP, PORT);
p.clientSocket.BeginReceive(p.data, 0,p.data.Length, SocketFlags.None, p.CallBack, null);
}
private void CallBack(IAsyncResult ar)
{
p.clientSocket.EndReceive(ar);
Console.WriteLine(System.Text.Encoding.UTF8.GetString(p.data));
}
}
}
简言之:
对于客户端:创建socket、连接ip与端口、开始异步接收数据(BeginReceive);
对于服务器端:创建socket、绑定ip与端口、开启监听状态、开始异步接收数据(BeginAccept)
使用方法:建立两个控制台,将以下代码copy上,即可实现。
效果:客户端的连接上后,服务器端会出现“服务器接收到了相应”,同时客户端会出现服务器端发送过来的信息“接收到了”。
代码如下:
服务器端:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace ServerTest
{
class Program
{
private IPEndPoint ipEndPoint;
private Socket serverSocket;
private Socket clientSocket;
static Program p = new Program();
private byte[] data = new byte[1024];
static void Main(string[] args)
{
p.ipEndPoint = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 6688);
p.serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
p.serverSocket.Bind(p.ipEndPoint);
p.serverSocket.Listen(0);
p.serverSocket.BeginAccept(p.CallBack, null);
Console.WriteLine("服务器接收到了相应");
Console.ReadLine();
}
private void CallBack(IAsyncResult ar)
{
clientSocket = serverSocket.EndAccept(ar);
clientSocket.Send(Encoding.UTF8.GetBytes("接收到了"));
serverSocket.BeginAccept(p.CallBack, null);
}
}
}客户端:using System;
using System.Threading;
using System.Net.Sockets;
namespace ConsoleApp4
{
class Program
{
private const string IP = "127.0.0.1";
private const int PORT = 6688;
private Socket clientSocket;
private byte[] data = new byte[1024];
static Program p = new Program();
static void Main(string[] args)
{
Console.WriteLine("开始");
p.clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
p.clientSocket.Connect(IP, PORT);
p.clientSocket.BeginReceive(p.data, 0,p.data.Length, SocketFlags.None, p.CallBack, null);
}
private void CallBack(IAsyncResult ar)
{
p.clientSocket.EndReceive(ar);
Console.WriteLine(System.Text.Encoding.UTF8.GetString(p.data));
}
}
}
简言之:
对于客户端:创建socket、连接ip与端口、开始异步接收数据(BeginReceive);
对于服务器端:创建socket、绑定ip与端口、开启监听状态、开始异步接收数据(BeginAccept)
相关文章推荐
- socket连接 java服务器端 C#客户端进行交互 简单例子
- 基于C#的socket编程的TCP异步实现 ,包含服务器端与客户端源代码
- Linux socket编程入门及客户端服务器端通信实现 – 提高篇:TCP连接过程分析
- TCP的socket的服务器端和客户端实例(linux下)
- ios socket编程的客户端和服务器端通信简单实例
- 网络编程C#篇(二):Socket无连接简单实例 推荐
- TCP客户端与服务器端实例
- C# Socket服务器端如何判断客户端断开
- C#和PHP Socket通信实例代码(服务器与客户端通信)
- Socket 编程经验谈---如何处理socket连接后服务器端或客户端的断开
- C# Socket异步编程,重启服务器,客户端连接不上?
- C#和PHP Socket通信实例代码(服务器与客户端通信)
- 【TCP通信】多客户端连接一个服务器端总结
- 利用Flash作为桥梁连接WEB页面和服务器端Socket通信,达到服务器主动"推"客户端的效果
- php socket客户端及服务器端应用实例
- [置顶] 使用多线程实现多客户端的连接(通过Socket实现TCP编程)
- 如何处理socket连接后服务器端或客户端的断开
- C#编写socket客户端,服务器断开连接时客户端报异常
- 【socket编程】 一个简单的基于TCP连接的客户端、服务端用例
- 三次握手,Socket与http、tcp客户端与服务器连接的区别!