C# Socket服务端和客户端通话
2020-12-27 18:28
标签:监听 指定 art sys sockets start cli ssg 输入 服务端 客户端 C# Socket服务端和客户端通话 标签:监听 指定 art sys sockets start cli ssg 输入 原文地址:https://www.cnblogs.com/netlock/p/13339116.htmlusing System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace tSocket
{
class Program
{
byte[] bytes = new byte[1024];
Socket cSocket;
static void Main(string[] args)
{
Program p = new Program();
//打开链接
p.open();
//向服务端发送消息
Console.WriteLine("请输入你要对服务端发送的消息:");
string mes = Console.ReadLine();
string con = p.messge(mes);
Console.WriteLine("接受到服务端的消息:" + con);
}
byte[] data = new byte[1024];
string messge(string mes)
{
//将发送的消息转成字节数组
bytes = Encoding.UTF8.GetBytes(mes);
//发送
cSocket.Send(bytes);
while (true)
{
//接受服务端发送的消息,放入字节数组
int len = cSocket.Receive(data);
//将字节数组转成可读明文
string con = Encoding.UTF8.GetString(data, 0, len);
////返回
return con;
}
}
///
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace ServerSocket
{
class Program
{
static void Main(string[] args)
{
//创建Socket对象,指定他的链接方式
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//建立IP
string ip = "10.116.253.10";
//创建端口
int prot = 7526;//1~9999
IPAddress IPAdd = IPAddress.Parse(ip);
//封装IP和端口
IPEndPoint point = new IPEndPoint(IPAdd, prot);
//绑定IP和端口
serverSocket.Bind(point);
//开始监听
serverSocket.Listen(100);
Console.WriteLine("开始监听!");
int i = 0;
while (true)
{
i++;
//接受客户链接
Socket cSocket = serverSocket.Accept();
Console.WriteLine("接受第"+i+"个客户的连接!");
Client c = new Client(cSocket);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ServerSocket
{
class Client
{
Socket sSocket;
byte[] data = new byte[1024];
Thread t;
public Client(Socket cSocket)
{
//接受客户的连接
sSocket = cSocket;
//创建线程
t = new Thread(Mess);
//开始线程
t.Start();
}
void Mess()
{
try
{
while (true)
{
//将用户发送的数据以一个字节数组装起
int length = sSocket.Receive(data);
Console.WriteLine("接受客户端发的消息!");
string mess = Encoding.UTF8.GetString(data, 0, length);
if (mess == "con")
{
string con = "DataSource =.";
byte[] bytes = Encoding.UTF8.GetBytes(con);
sSocket.Send(bytes);
}
Console.WriteLine("接到用户的消息:" + mess);
}
}
catch (Exception)
{
sSocket.Close();
}
}
}
}
上一篇:c# 匿名方法
下一篇:C# 导出Excel错误
文章标题:C# Socket服务端和客户端通话
文章链接:http://soscw.com/index.php/essay/38645.html