//实现服务器端
//创建Client类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ChartServer
{
/// <summary>
/// 客户端连接
/// </summary>
class Client
{
#region 字段
//客户端连接线程
private System.Threading.Thread clthread;
//客户端连接网络地址
private System.Net.EndPoint endpoint;
//客户端名称
private string name;
//客户端对象
private System.Net.Sockets.Socket sock;
#endregion
#region 构造
//构造一个客户端连接
public Client(string _name, System.Net.EndPoint _endpoint, System.Threading.Thread _thread, System.Net.Sockets.Socket _sock)
{
clthread = _thread;
endpoint = _endpoint;
name = _name;
sock = _sock;
}
#endregion
#region 方法
//重写ToString方法
public override string ToString()
{
//返回客户端连接网络地址和客户端连接名称
return endpoint.ToString() + ":" + name;
}
#endregion
#region 属性
public System.Threading.Thread CLThread
{
get { return clthread; }
set { clthread = value; }
}
public System.Net.EndPoint Host
{
get { return endpoint; }
set { endpoint = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public System.Net.Sockets.Socket Sock
{
get { return sock; }
set { sock = value; }
}
#endregion
}
}
//服务器端代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ChartServer
{
public partial class ServerMain : Form
{
public ServerMain()
{
InitializeComponent();
}
//客户端连接
System.Net.Sockets.Socket clientsocket;
//连接集合
System.Collections.ArrayList clients;
//客户端线程
System.Threading.Thread clientservice;
System.Threading.Thread threadListen;
System.Net.Sockets.TcpListener listener;
System.Net.IPAddress ipAddress;
Int32 listenport;
public delegate void MyInvoke(string str);
/// <summary>
/// 开始侦听,允许客户端连接
/// </summary>
private void StartListening()
{
//定义网络连接侦听
listener = new System.Net.Sockets.TcpListener(ipAddress,listenport);
listener.Start();
while (true)
{
try
{
C# Socket多线程编程(一)
最新推荐文章于 2024-06-26 11:14:11 发布
本文介绍如何在C#中使用Socket进行多线程编程,通过示例代码详细解析关键步骤和常见问题,帮助开发者理解多线程Socket通信的实现。
摘要由CSDN通过智能技术生成