Socket套接字实现服务器端连接
1
using System;
2
using System.Drawing;
3
using System.Collections;
4
using System.ComponentModel;
5
using System.Windows.Forms;
6
using System.Data;
7
// 新添加的命令空间
8
using System.Net;
9
using System.Net.Sockets;
10
using System.Threading;
11
using System.Text;
12
using System.IO;
13![]()
14
namespace SocketServer
15
{
16
/// <summary>
17
/// Socket套接字实现服务器端连接。
18
/// </summary>
19
public class Form1 : System.Windows.Forms.Form
20
{
21
private System.Windows.Forms.RichTextBox richTextBox1;
22
private System.Windows.Forms.Button button1;
23
// 客户端节点
24
private IPEndPoint client;
25
// 服务器端Socket
26
private Socket server;
27
// 服务器端监听线程
28
private Thread thdSvr;
29
// 网络数据流
30
NetworkStream stream;
31
// 写数据流
32
TextWriter writer;
33
// 读数据流
34
TextReader reader;
35
/// <summary>
36
/// 必需的设计器变量。
37
/// </summary>
38
private System.ComponentModel.Container components = null;
39
// 监听线程
40
private void ThreadServer()
41
{
42
client = new IPEndPoint(IPAddress.Any, 34567);
43
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
44
server.Blocking = true;
45
server.Bind(client);
46
server.Listen(0);
47
while(true)
48
{
49
Socket t = server.Accept();
50
if (t != null)
51
{
52
stream = new NetworkStream(t);
53
writer = new StreamWriter(stream);
54
reader = new StreamReader(stream);
55
richTextBox1.Text += "接收到一个连接
\n";
56
writer.WriteLine("欢迎连接到服务器!");
57
writer.Flush();
58
writer.WriteLine("您现在可以说话了
");
59
writer.Flush();
60
richTextBox1.Text += reader.ReadLine();
61
richTextBox1.Text += "\n";
62
reader.Close();
63
writer.Close();
64
stream.Close();
65
t.Close();
66
}
67
}
68
}
69
public Form1()
70
{
71
//
72
// Windows 窗体设计器支持所必需的
73
//
74
InitializeComponent();
75
//
76
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
77
//
78
}
79![]()
80
/// <summary>
81
/// 清理所有正在使用的资源。
82
/// </summary>
83
protected override void Dispose( bool disposing )
84
{
85
if(server != null)
86
server.Close();
87
if(!button1.Enabled)
88
if(thdSvr != null)
89
thdSvr.Abort();
90
if( disposing )
91
{
92
if (components != null)
93
{
94
components.Dispose();
95
}
96
}
97
base.Dispose( disposing );
98
}
99![]()
100
Windows Form Designer generated code
143![]()
144
/// <summary>
145
/// 应用程序的主入口点。
146
/// </summary>
147
[STAThread]
148
static void Main()
149
{
150
Application.Run(new Form1());
151
}
152
// 开始服务器端的运行。
153
private void button1_Click(object sender, System.EventArgs e)
154
{
155
thdSvr = new Thread(new ThreadStart(this.ThreadServer));
156
thdSvr.Start();
157
button1.Enabled = false;
158
}
159
}
160
}
161![]()
using System;2
using System.Drawing;3
using System.Collections;4
using System.ComponentModel;5
using System.Windows.Forms;6
using System.Data;7
// 新添加的命令空间8
using System.Net;9
using System.Net.Sockets;10
using System.Threading;11
using System.Text;12
using System.IO;13

14
namespace SocketServer15
{16
/// <summary>17
/// Socket套接字实现服务器端连接。18
/// </summary>19
public class Form1 : System.Windows.Forms.Form20
{21
private System.Windows.Forms.RichTextBox richTextBox1;22
private System.Windows.Forms.Button button1;23
// 客户端节点24
private IPEndPoint client;25
// 服务器端Socket26
private Socket server;27
// 服务器端监听线程28
private Thread thdSvr;29
// 网络数据流30
NetworkStream stream;31
// 写数据流32
TextWriter writer;33
// 读数据流34
TextReader reader;35
/// <summary>36
/// 必需的设计器变量。37
/// </summary>38
private System.ComponentModel.Container components = null;39
// 监听线程40
private void ThreadServer()41
{42
client = new IPEndPoint(IPAddress.Any, 34567);43
server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);44
server.Blocking = true;45
server.Bind(client);46
server.Listen(0);47
while(true)48
{49
Socket t = server.Accept();50
if (t != null)51
{52
stream = new NetworkStream(t);53
writer = new StreamWriter(stream);54
reader = new StreamReader(stream);55
richTextBox1.Text += "接收到一个连接
\n";56
writer.WriteLine("欢迎连接到服务器!");57
writer.Flush();58
writer.WriteLine("您现在可以说话了
");59
writer.Flush();60
richTextBox1.Text += reader.ReadLine();61
richTextBox1.Text += "\n";62
reader.Close();63
writer.Close();64
stream.Close();65
t.Close();66
}67
}68
}69
public Form1()70
{71
//72
// Windows 窗体设计器支持所必需的73
//74
InitializeComponent();75
//76
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码77
//78
}79

80
/// <summary>81
/// 清理所有正在使用的资源。82
/// </summary>83
protected override void Dispose( bool disposing )84
{85
if(server != null)86
server.Close();87
if(!button1.Enabled)88
if(thdSvr != null)89
thdSvr.Abort();90
if( disposing )91
{92
if (components != null)93
{94
components.Dispose();95
}96
}97
base.Dispose( disposing );98
}99

100
Windows Form Designer generated code143

144
/// <summary>145
/// 应用程序的主入口点。146
/// </summary>147
[STAThread]148
static void Main()149
{150
Application.Run(new Form1());151
}152
// 开始服务器端的运行。153
private void button1_Click(object sender, System.EventArgs e)154
{155
thdSvr = new Thread(new ThreadStart(this.ThreadServer));156
thdSvr.Start();157
button1.Enabled = false;158
}159
}160
}161


浙公网安备 33010602011771号