1using System;
  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套接字实现服务器端连接相关推荐

  1. Python 技术篇-socket套接字实现服务器客户端消息传递实例演示,UDP实现

    上一篇:Python 技术篇-socket 套接字实现两个窗口间消息传递,TCP 实现 本篇介绍用 UDP 来实现. socket 套接字实现服务器客户端消息传递有 UDP 和 TCP 两种形式.他们 ...

  2. Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现

    上一篇:Python 技术篇-socket 套接字实现服务器客户端消息传递,UDP 实现 本篇介绍用 TCP 来实现. socket 实现客户端服务器的消息传递有 TCP 和 UDP 两种方式. TC ...

  3. 一个简单的socket套接字服务器,Python

    (1)用Python实现一个简单的套接字socket服务器例子,该服务器在接受客户端连接后,每隔一秒从a到z的字符中随机选一个发送给客户端. import socketserver import ti ...

  4. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210726002244.doc-原创力文档...

    一.设计目的 为了提高同学的自主动手能力,把理论知识运用于实 践中,从实践中更好的领悟所学的知识. 二.题目要求及需求分析 1.网络I/O程序设计:用Socket套接字实现DAYTIME 协 议的服务 ...

  5. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序-20210414073352.docx-原创力文档...

    用Socket套接字实现 DAY TIME 协议的服务器和客户端程序 一.设计目的 为了提高同学的自主动手能力,把理论知识运用于实 践中,从实践中更好的领悟所学的知识. 二.题目要求及需求分析 网络I ...

  6. daytime协议的服务器和客户端程序,用Socket套接字实现DAYTIME协议的服务器和客户端程序.doc...

    用Socket套接字实现DAYTIME协议的服务器和客户端程序.doc 一. 设计目的 为了提高同学的自主动手能力,把理论知识运用于实践中,从实践中更好的领悟所学的知识 . 二. 题目要求及需求分析 ...

  7. daytime协议的服务器和客户端程序,用socket套接字实现daytime协议服务器和客户端程序.doc...

    文档介绍: 用socket套接字实现daytime协议服务器和客户端程序.doc一.设计目的为了提高同学的自主动手能力,把理论知识运用于实践中,从实践中更好的领悟所学的知识.二.题目要求及需求分析1. ...

  8. daytime协议的服务器和客户端程序,用socket套接字实现daytime协议的服务器和客户端程序精编版.doc...

    用socket套接字实现daytime协议的服务器和客户端程序精编版.doc 还剩 11页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: ------- ...

  9. 【Linux网络编程】网络基础 和 socket套接字 服务器与客户端 详细案例说明

    目录 前言 一.网络编程三要素 1.IP地址 2.通信协议 3.端口号 二.SOCKET套接字 SOCKET概述 SOCKET分类 三.代码实现 1.编程思路 2.建立服务器 服务器完整代码 3.建立 ...

最新文章

  1. Java代码块总结(速读版)
  2. linux中vi写java,Linux编辑器vi使用方法详细介绍
  3. win7为什么没有计算机,教你win7如何快速找出电脑没声音问题所在-win7之家
  4. Java代码性能优化技巧
  5. 电信系统方案 电信综合营帐系统
  6. codeforces - 766B【三角形判断】
  7. 如何让Filddler抓包时忽略某些主机名
  8. c#如何识别一张图片的格式
  9. useradd: cannot open /etc/passwd解决办法记录
  10. 函数与导数中常用的函数和不等关系
  11. 网络工程师之子网划分
  12. 人力资源HR管理系统源码
  13. java上传图片至阿里云oss服务器
  14. 苹果手机各种尺寸详细表以及iPhoneX、iPhone 11、iPhone 12、iPhone 13 屏幕适配,状态栏高度问题
  15. com.Android.pngn.tlq,Android学习笔记(八)——四种基本布局
  16. win7无法连接打印机拒绝访问_win7系统共享打印机拒绝访问的完美解决方法
  17. Pytorch中iter(dataloader)的使用
  18. 上海汇珏EPON典型应用分析
  19. 数据库运行sql文件
  20. 微信小程序网络请求异常怎么办_解决·微信小程序开发-网络请求报Invalid request 400错误...

热门文章

  1. java对接支付宝微信银联_经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信,银联支付】】(示例代码)...
  2. 计算机安装应用程序卸的步骤,电脑软件怎么卸载,干货在这里,如何卸载电脑上安装的软件...
  3. html怎么把excel表格合并单元格,Excel中如何快速合并多个单元格
  4. mysql shell无法启动服务_[shell脚本] mysql服务启动脚本
  5. 什么是python自动化脚本_python自动化框架脚本
  6. oracle_导致实例逐出的五大问题
  7. sql server一个查询语句引发的死锁
  8. 注解形式控制器 数据验证,类型转换
  9. android handler2--消息队列源码解析
  10. C#面试题(.net开发人员必备)