资源简介
C#写的TCP服务器端程序,支持多个TCP客户端连入,程序当中有一个监听进程不断监听来自客户端的TCP连接请求,请求建立后交由一个专门的处理进程来处理接收到的数据(在本程序当中只是简单的将收到的数据返回给客户端)。全部源代码。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace TCPMultilink
{
public partial class Form1 : Form
{
Thread listenThread = null;//监听进程
public Form1()
{
InitializeComponent();
}
private static void StartListening() //main listening thread
{
IPEndPoint ipep = new IPEndPoint(IPAddress.Any 5555);//绑定5555端口
Socket newsock = new Socket(AddressFamily.InterNetworkSocketType.Stream ProtocolType.Tcp);//tcp协议
newsock.Bind(ipep);
newsock.Listen(10);
while (true)
{
Socket client = newsock.Accept();//等待TCP客户端的链接请求
ThreadClientProc p = new ThreadClientProc();
p.tempSocket = client;
Thread clientService = new Thread(new ThreadStart(p.ServiceClient));
clientService.IsBackground = true;
clientService.Start();
}
}
private void Form1_FormClosing(object sender FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show(“确定要退出程序吗?“ “退出提示“ MessageBoxButtons.OKCancel);
if (dr.Equals(DialogResult.OK))
{
// Application.Exit();
if (listenThread != null)
listenThread.Abort();
this.Dispose();
this.Close();
}
else
{
e.Cancel = true;
}
}
private void Form1_Load(object sender EventArgs e)
{
//创建监听进程
listenThread = new Thread(new ThreadStart(StartListening));
listenThread.IsBackground = true;
listenThread.Start();
}
}
//客户端请求处理类
public class ThreadClientProc
{
public Socket tempSocket;
public ThreadClientProc()
{
}
public void CloseThread()
{
Thread th = Thread.CurrentThread;
th.Abort();
}
public void ServiceClient()
{
IPEndPoint newclient = (IPEndPoint)this.tempSocket.RemoteEndPoint;
NetworkStream ns = new NetworkStream(tempSocket);
StreamReader sr = new StreamReader(ns);
StreamWriter sw = new StreamWriter(ns);
//string welcome = “Welcome to tcp server!“;
//sw.WriteLine(welcome);
//sw.Flush();
sw.AutoFlush = true;
char[] myReadBuffer = new char[1024];
int count;
while (true)
{
try
{
count =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5612 2009-09-05 21:36 TCPMultili
文件 249 2009-09-05 21:36 TCPMultili
文件 1196 2009-09-05 21:36 TCPMultili
文件 2878 2009-09-05 21:36 TCPMultili
文件 1095 2009-09-05 21:36 TCPMultili
文件 3231 2009-09-05 21:47 TCPMultili
文件 5632 2005-12-08 14:51 TCPMultili
文件 20480 2009-09-06 09:14 TCPMultili
文件 24064 2009-09-06 09:14 TCPMultili
文件 180 2009-09-05 21:50 TCPMultili
文件 180 2009-09-05 21:47 TCPMultili
文件 20480 2009-09-06 09:14 TCPMultili
文件 842 2009-09-05 21:50 TCPMultili
文件 24064 2009-09-06 09:14 TCPMultili
文件 303 2009-09-06 09:14 TCPMultili
文件 471 2009-09-05 21:36 TCPMultili
文件 1605 2009-09-05 21:50 TCPMultili
文件 5814 2009-09-05 21:50 TCPMultili
文件 3522 2009-09-06 09:14 TCPMultili
文件 925 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
目录 0 2009-09-05 21:36 TCPMultili
----------- --------- ---------- ----- ----
122823 27
............此处省略0个文件信息
相关资源
- C#写的串口16进制收发程序源码.rar
- C#利用ManagedWifi获取当前已经连接的
- C# 自动修改Default.rdp,调用mstsc.exe实现
- C#+AE开发的地图编辑程序,适合初学者
- C#系统项目参考-企业电话客服系统
- C#中的TCP和UDP通信的实现
- 机器人路径规划c#
-
基于c#的Arcob
ject的一个 -
C#用sc
riptControl动态执行JS和VBS脚本 - 《ArcGIS Engine+C#开发教程》源码
- PIC18F UART Bootloader (C# 上位机)
- 密码管理专家系统源代码
- c#聊天室作业及实验报告
- C#文本编辑器代码及项目
- 摄像机漫游C#脚本WASD或方向键控制,
- [源代码] C# WinForms 经典小游戏 - 华容
- C# ASP.NET - 将Web网页导出至Word文档
- C# ASP.NET- 在线投票系统 简单
- C# - 简易聊天室实现网页
- blowfish算法的C#实现
- c# 多线程轮询,等待,回调操作
- C#连接数据库表格显示
- SignIn.zip
- 百度开源webuploader文件上传组件ASP.N
- C# mapx 开发GIS
- FileSendProtocol_20170920.rar
- 基于C#的onvif协议之抓图
- c#高级编程 第十版 中文完整版
- C# 动态生成柏拉图
- C#实现动态的曲线图
评论
共有 条评论