using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace SocketServer
{
class Program
{
/// <summary>
/// 服务器:
/// 1、接收请求
/// 2、接收数据
/// 3、发送数据
/// 4、断开连接
/// </summary>
///
public static Socket serverSocket;
static void Main(string[] args)
{
//AddressFamily 地址族
//SocketType 套接字类型
//ProtocolType 协议
serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//地址族,套接字类型,协议
//Socket ServerSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);//UDP使用Dgram数据报类型套接字 //进行绑定
//端口号范围0~65535
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any,);
serverSocket.Bind(endPoint);
serverSocket.Listen();//
//开启一个线程接受客户端
Thread thread = new Thread(listenClientConnect);
thread.Start(); }
/// <summary>
/// 监听客户端连接
/// </summary>
private static void listenClientConnect()
{
//等待 有客户端连接的时候 就会触发这个函数,返回一个客户端的socket对象
Socket clientSocket = serverSocket.Accept();
Console.WriteLine("客户端连接成功 信息:"+clientSocket.AddressFamily.ToString()); //给客户端发送一个消息(发送字节数据)
clientSocket.Send(Encoding.Default.GetBytes("服务器告诉你连接成功了"));//GetBytes字符串转字节数据 //接受客户端发来的消息
Thread recThread = new Thread(receiveClientMessage);
recThread.Start(clientSocket);
}
/// <summary>
/// 接受来自客户端的消息
/// </summary>
/// <param name="clientSocket"></param>
private static void receiveClientMessage(object clientSocket)
{
Socket socket = clientSocket as Socket;//接收到的对象转换类型
byte[] buffer = new byte[];
//接收到数据的长度
int length = socket.Receive(buffer);
//显示出来
Console.WriteLine(Encoding.Default.GetString(buffer, , length));
}
}
}

010 socket定义服务器的更多相关文章

  1. C#调用接口注意要点 socket,模拟服务器、客户端通信 在ASP.NET Core中构建路由的5种方法

    C#调用接口注意要点   在用C#调用接口的时候,遇到需要通过调用登录接口才能调用其他的接口,因为在其他的接口需要在登录的状态下保存Cookie值才能有权限调用, 所以首先需要通过调用登录接口来保存c ...

  2. Android 通过Socket 和服务器通讯

    Extends:(http://www.cnblogs.com/likwo/p/3641135.html) Android 通过Socket 和服务器通讯,是一种比较常用的通讯方式,时间比较紧,说下大 ...

  3. 【踩坑】socket.io服务器不能访问

    今天在单机测试socket.io服务器时一切正常,但用jar包的方式部署在服务器时发现客户端无法连接. 于是做了一系列排查,如检查端口是否在占用,防火墙有没有开放该端口,阿里云终端是否有开放安全组,本 ...

  4. python网络编程学习笔记(三):socket网络服务器(转载)

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较. 步骤 TCP客户端 TCP服务器 第一步 建立socket对象  建立socket对 ...

  5. Linux socket多进程服务器框架三

    在使用select管理服务器连接的时候: 注意1:select是可中断睡眠函数,需要屏蔽信号 注意2:必须获取select的返回值nread,每次处理完一个事件,nread需要-1 注意3:如果客户端 ...

  6. Linux socket多进程服务器框架一

    重点:socket共用方法中错误码的定义以及错误码的解析 底层辅助代码 //serhelp.h #ifndef _vxser #define _vxser #ifdef __cplusplus ext ...

  7. linux socket高性能服务器处理框架

    这个博客很多东西 http://blog.csdn.net/luozhonghua2014/article/details/37041765   思考一种高性能的服务器处理框架 1.首先需要一个内存池 ...

  8. socket编程—— 服务器遇到Broken Pipe崩溃

    我写了一个服务器程序, 在Linux下测试时, 总是莫名退出. 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Broken pipe". 最后问题确定为, ...

  9. Linux socket多进程服务器框架二

    客户端未解决Bug:子进程或者父进程退出的时候,我无法做到两个进程都调用clt_socket_Destory()方式释放socket句柄, 但是进程退出后,相应的资源也会释放,有一定影响,但是不大,以 ...

随机推荐

  1. Android为TV端助力 电影栏目移动到底部或者顶部时抖动动画

    1 移动到底部上下抖动ObjectAnimator animatorX = ObjectAnimator.ofFloat(holder.itemView,"translationX" ...

  2. C# 离线人脸识别Demo 使用ArcFace 2.0开发完成

    环境:     win7以上  VS2013以上    sdk版本:ArcFace v2.0    x86 x64平台Debug.Release配置都已通过编译 下载地址:https://github ...

  3. git错误--ssh: Could not resolve hostname ssh.github.com: Name or service not known--解决方式

    错误如下: git push origin ssh: Could not resolve hostname ssh.github.com: Name or service not known fata ...

  4. 神经网络MPLClassifier分类

    代码: # -*- coding: utf-8 -*- """ Created on Fri Aug 24 14:38:56 2018 @author: zhen &qu ...

  5. iOS 多线程 NSOperation、NSOperationQueue

    1. NSOperation.NSOperationQueue 简介 NSOperation.NSOperationQueue 是苹果提供给我们的一套多线程解决方案.实际上 NSOperation.N ...

  6. 如何学好java

    今天发现这么一篇文章,对于笔者谈的:"一方面很努力学习,一方面又觉得不踏实",我感同身受.觉得文章写得不错,在此献给一些在java中努力的朋友们,希望能有所收获. 文章原内容: 近 ...

  7. 解决FileZilla访问手机ftp服务只能删除浏览文件不能下载文件的问题

    用了Linux系统之后,很多资源都不方便获取, 因为很多资料都是放在百某某盘上面. 无意中看到我手机有FTP服务,想到我电脑装有FileZilla,可以访问手机了 然后就连接上了. 但是浏览的时候发现 ...

  8. Ranger-Kafka插件安装

    Ranger-Kafka插件安装, 使用Ranger0.7.0版本,集成Kafka插件到Kafka集群, Kafka Plugin需要安装到所有的Kafka的集群节点上面. 1.登陆Kafka的安装用 ...

  9. Loj #2542. 「PKUWC2018」随机游走

    Loj #2542. 「PKUWC2018」随机游走 题目描述 给定一棵 \(n\) 个结点的树,你从点 \(x\) 出发,每次等概率随机选择一条与所在点相邻的边走过去. 有 \(Q\) 次询问,每次 ...

  10. python已经感觉到放弃接近的day08

    居然能超过一个星期,我甚至都有点佩服我自己了,今天有两个新的知识点,一个简单一个难,先从简单的开始入手吧,进制,进制分为4种,2进制,8进制,10进制,16进制,一般最常用的就是10进制了,计算机用的 ...