C# 套接字编程:Scoket,我用Scoket做的C# Windows应用程序如下:

简介: 首先请允许我做一个截图:以上,是我服务端设计我们知道:服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。因此,我们可以通过程序随机获取一个当前可用的端口我将此方法写成了一个类,如下:using System;using System.

首先请允许我做一个截图:

以上,是我服务端设计

我们知道:服务器端口数最大可以有65535个,但是实际上常用的端口才几十个,由此可以看出未定义的端口相当多。因此,我们可以通过程序随机获取一个当前可用的端口

我将此方法写成了一个类,如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace ServerForm.CommonCS
{
    public class PortHelper
    {

        /// <summary>
        /// 这个方法是验证某个端口是否可用
        /// </summary>
        /// <param name="port"></param>
        /// <returns></returns>
        public static bool IsAvaliable(int port)
        {

            Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            bool result = false;
            try
            {
                sk.Bind(new IPEndPoint(IPAddress.Any, port));//尝试绑定,因为如果该端口已经被使用,则无法绑定,会导致异常
                result = true;
            }
            catch
            {
                result = false;
            }
            finally
            {
                sk.Close();
            }

            return result;

        }

        /// <summary>
        /// 这个方法取得一个可用的端口
        /// </summary>
        /// <returns></returns>
        public static int GetAvaliablePort()
        {
            Random rnd = new Random();
            int port = rnd.Next(1024, 65535);//随机产生一个动态的端口号
            while (!IsAvaliable(port))
            {
                port = rnd.Next(1024, 65535);
            }

            return port;
        }

    }
}
View Code

当然,这仅仅是获取可用端口的方法,对于套接字编程意义不大。

那么,根据上图可知,有个按钮叫做:开始监听,也就是说点击这个按钮,服务器将时时监听服务器的某个端口,代码如下:

今天心情不好,代码就不写了,直接上案例:

 代码下载路径:点击此下载

也可以通过链接打开:http://files.cnblogs.com/files/chenwolong/Socket.zip

大致效果图如下:

@陈卧龙博客

 

目录
打赏
0
0
0
0
4
分享
相关文章
|
15天前
|
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
31 12
AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
129 9
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
C# 获取Windows系统信息以及CPU、内存和磁盘使用情况
132 0
C#中windows应用窗体程序的输入输出方法实例
C#中windows应用窗体程序的输入输出方法实例
85 0
|
5月前
|
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
133 0
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
|
7月前
|
C# 创建 Windows Service 项目
C# 创建 Windows Service 项目
54 1
在C#中获取与设置Windows的字符编码方式
通过以上步骤,你可以在Docker环境下有效地重启PostgreSQL服务。这对于维护数据库健康、应用更新或环境配置更改后确保数据库服务正常运行至关重要。根据你的具体需求和环境设置,选择合适的方法来执行重启操作。
33 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等