Socket套接字实现服务器端连接
2using System.Drawing;
3using System.Collections;
4using System.ComponentModel;
5using System.Windows.Forms;
6using System.Data;
7// 新添加的命令空间
8using System.Net;
9using System.Net.Sockets;
10using System.Threading;
11using System.Text;
12using System.IO;
13
14namespace 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#region Windows Form Designer generated code
101 /**//// <summary>
102 /// 设计器支持所需的方法 - 不要使用代码编辑器修改
103 /// 此方法的内容。
104 /// </summary>
105 private void InitializeComponent()
106 {
107 this.richTextBox1 = new System.Windows.Forms.RichTextBox();
108 this.button1 = new System.Windows.Forms.Button();
109 this.SuspendLayout();
110 //
111 // richTextBox1
112 //
113 this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Top;
114 this.richTextBox1.Name = "richTextBox1";
115 this.richTextBox1.Size = new System.Drawing.Size(416, 256);
116 this.richTextBox1.TabIndex = 0;
117 this.richTextBox1.Text = "";
118 //
119 // button1
120 //
121 this.button1.Location = new System.Drawing.Point(152, 264);
122 this.button1.Name = "button1";
123 this.button1.TabIndex = 1;
124 this.button1.Text = "启动服务器";
125 this.button1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
126 this.button1.Click += new System.EventHandler(this.button1_Click);
127 //
128 // Form1
129 //
130 this.AutoScaleBaseSize = new System.Drawing.Size(8, 18);
131 this.ClientSize = new System.Drawing.Size(416, 296);
132 this.Controls.AddRange(new System.Windows.Forms.Control[] {
133 this.button1,
134 this.richTextBox1});
135 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
136 this.Name = "Form1";
137 this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
138 this.Text = "服务器";
139 this.ResumeLayout(false);
140
141 }
142 #endregion
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
转载于:https://www.cnblogs.com/gofficer/archive/2007/08/24/868031.html
Socket套接字实现服务器端连接相关推荐
- Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现
上一篇:Python 技术篇-socket 套接字实现两个窗口间消息传递,TCP 实现 本篇介绍用 UDP 来实现. socket 套接字实现服务器客户端消息传递有 UDP 和 TCP 两种形式.他们 ...
- Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现
上一篇:Python 技术篇-socket 套接字实现服务器客户端消息传递,UDP 实现 本篇介绍用 TCP 来实现. socket 实现客户端服务器的消息传递有 TCP 和 UDP 两种方式. TC ...
- 一个简单的socket套接字服务器,Python
(1)用Python实现一个简单的套接字socket服务器例子,该服务器在接受客户端连接后,每隔一秒从a到z的字符中随机选一个发送给客户端. import socketserver import ti ...
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210726002244.doc-原创力文档...
一.设计目的 为了提高同学的自主动手能力,把理论知识运用于实 践中,从实践中更好的领悟所学的知识. 二.题目要求及需求分析 1.网络I/O程序设计:用Socket套接字实现DAYTIME 协 议的服务 ...
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...
用Socket套接字实现 DAY TIME 协议的服务器和客户端程序 一.设计目的 为了提高同学的自主动手能力,把理论知识运用于实 践中,从实践中更好的领悟所学的知识. 二.题目要求及需求分析 网络I ...
- daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序.doc...
用Socket套接字实现DAYTIME协议的服务器和客户端程序.doc 一. 设计目的 为了提高同学的自主动手能力,把理论知识运用于实践中,从实践中更好的领悟所学的知识 . 二. 题目要求及需求分析 ...
- daytime协议的服务器和客户端程序,用socket套接字实现daytime协议服务器和客户端程序.doc...
文档介绍: 用socket套接字实现daytime协议服务器和客户端程序.doc一.设计目的为了提高同学的自主动手能力,把理论知识运用于实践中,从实践中更好的领悟所学的知识.二.题目要求及需求分析1. ...
- daytime协议的服务器和客户端程序,用socket套接字实现daytime协议的服务器和客户端程序精编版.doc...
用socket套接字实现daytime协议的服务器和客户端程序精编版.doc 还剩 11页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: ------- ...
- 【Linux网络编程】网络基础 和 socket套接字 服务器与客户端 详细案例说明
目录 前言 一.网络编程三要素 1.IP地址 2.通信协议 3.端口号 二.SOCKET套接字 SOCKET概述 SOCKET分类 三.代码实现 1.编程思路 2.建立服务器 服务器完整代码 3.建立 ...
最新文章
- Java代码块总结(速读版)
- linux中vi写java,Linux编辑器vi使用方法详细介绍
- win7为什么没有计算机,教你win7如何快速找出电脑没声音问题所在-win7之家
- Java代码性能优化技巧
- 电信系统方案 电信综合营帐系统
- codeforces - 766B【三角形判断】
- 如何让Filddler抓包时忽略某些主机名
- c#如何识别一张图片的格式
- useradd: cannot open /etc/passwd解决办法记录
- 函数与导数中常用的函数和不等关系
- 网络工程师之子网划分
- 人力资源HR管理系统源码
- java上传图片至阿里云oss服务器
- 苹果手机各种尺寸详细表以及iPhoneX、iPhone 11、iPhone 12、iPhone 13 屏幕适配,状态栏高度问题
- com.Android.pngn.tlq,Android学习笔记(八)——四种基本布局
- win7无法连接打印机拒绝访问_win7系统共享打印机拒绝访问的完美解决方法
- Pytorch中iter(dataloader)的使用
- 上海汇珏EPON典型应用分析
- 数据库运行sql文件
- 微信小程序网络请求异常怎么办_解决·微信小程序开发-网络请求报Invalid request 400错误...
热门文章
- java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...
- 计算机安装应用程序卸的步骤,电脑软件怎么卸载,干货在这里,如何卸载电脑上安装的软件...
- html怎么把excel表格合并单元格,Excel中如何快速合并多个单元格
- mysql shell无法启动服务_[shell脚本] mysql服务启动脚本
- 什么是python自动化脚本_python自动化框架脚本
- oracle_导致实例逐出的五大问题
- sql server一个查询语句引发的死锁
- 注解形式控制器 数据验证,类型转换
- android handler2--消息队列源码解析
- C#面试题(.net开发人员必备)