.net for TCP服务端 && 客户端
关键代码
详细代码请看示例代码
Service
//创建套接字
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ipaddress), port);
//也可以使用IPAddress.Any,监听所有网络接口上的客户端活动
//https://docs.microsoft.com/en-us/dotnet/api/system.net.ipaddress.any?view=netframework-4.7.2
//一般来说,服务端套接字都是直接bind端口,不会显式指明ip地址
//否则切换了服务器还需要修改,或者也可以动态获取IP,但是没必要
IPEndPoint ipe2 = new IPEndPoint(IPAddress.Any, port);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, true);
//https://www.codeproject.com/Articles/117557/Set-Keep-Alive-Values
//http://blog.stephencleary.com/2009/05/detection-of-half-open-dropped.html
SetTcpKeepAlive(socket, 600000, 1000);
//绑定端口和IP
socket.Bind(ipe);
//设置监听数
socket.Listen(10);
//连接客户端
await AsyncAccept(socket);
Client
//端口及IP
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ipaddress), port);
//创建套接字
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//开始连接到服务器
client.BeginConnect(ipe,async asyncResult =>
{
client.EndConnect(asyncResult);
//向服务器发送消息
await AsynSend(client, "你好我是客户端");
await AsynSend(client, "第一条消息");
await AsynSend(client, "第二条消息");
//接受消息
await AsynRecive(client);
}, null);
报错
1.在其上下文中,该请求的地址无效
遇到这个问题是在正式服务器上,在测试服务器上运行良好,所以考虑是机器或者网络配置的问题,包括出入站规则、防火墙、端口映射、端口转向等
不是太懂运维的内容,所以对代码进行了修改
把具体的IP改为了IPAddress.Any的写法则运行正常
//报错
IPEndPoint ipe = new IPEndPoint(IPAddress.Parse(ipaddress), port);
//正确
IPEndPoint ipe = new IPEndPoint(IPAddress.Any, port);
参考资料
示例代码
.net for TCP服务端 && 客户端的更多相关文章
- Mina TCP服务端客户端 示例
服务端代码: package com.xd.nms.example; import java.io.IOException; import java.net.InetSocketAddress; im ...
- [javaSE] 网络编程(TCP服务端客户端互访阻塞)
客户端给服务端发送数据,服务端收到数据后,给客户端反馈数据 客户端: 获取Socket对象,new出来,构造参数:String的ip地址,int的端口号 调用Socket对象的getOutputStr ...
- TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP部分的使用 框架源码结构 补充说明 源码地址 说明 之前有好几篇博客在讲TCP/UDP通信方 ...
- Java TCP服务端向客户端发送图片
/** * 1.创建TCP服务端,TCP客户端 * 2.服务端等待客户端连接,客户端连接后,服务端向客户端写入图片 * 3.客户端收到后进行文件保存 * @author Administrator * ...
- TCP和UDP的区别以及使用python服务端客户端简单编程
一.TCP.UDP区别总结 1.TCP面向连接(如打电话要先拨号建立连接):UDP是无连接的,即发送数据之前不需要建立连接 2.TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失 ...
- 【转】TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端)、UDP客户端
[转]TCP/UDP简易通信框架源码,支持轻松管理多个TCP服务端(客户端).UDP客户端 目录 说明 TCP/UDP通信主要结构 管理多个Socket的解决方案 框架中TCP部分的使用 框架中UDP ...
- python创建tcp服务端和客户端
1.tcp服务端server from socket import * from time import ctime HOST = '' PORT = 9999 BUFSIZ = 1024 ADDR ...
- vertx 从Tcp服务端和客户端开始翻译
写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = ve ...
- swoole创建TCP服务端和客户端
服务端: server.php <?php //创建Server对象,监听 127.0.0.1:9501端口 $serv = new swoole_server("127.0.0 ...
随机推荐
- ArcGIS for Server 10.2 开启GeometryService
过程非常简单,所以网上文档比较少. 打开网站管理页面: http://localhost:6080/arcgis/manager/ 点左边Utilities
- 我的洛谷签名——Pale Blue Dot
We succeeded in taking that picture [from deep space], and, if you look at it, you see a dot. That's ...
- 网络I/O
贴几个超级不错的博客 1.Linux IO模式及 select.poll.epoll详解 2.网络 I/O 模型 3.同步异步阻塞非阻塞 4.三种模式的区别与联系
- React (Native) Rendering Lifecycle
How Does React Native Work? The idea of writing mobile applications in JavaScript feels a little odd ...
- react navite 学习资料
react 学习资料 https://github.com/crazycodeboy/GitHubPopular crazycodeboy/GitHubPopular https://github.c ...
- spring:过滤器和拦截器
过滤器:网络通信模型的会话层控制: 拦截器:事务处理的aop注入(生命周期监控). 对于Servlet Filter,官方文档中说的很好, 并且给出了常见的应用场景. A filter is an o ...
- POJ1321-棋盘问题-(dfs)
http://poj.org/problem?id=1321 解题: dfs中,两种情况,某一行摆不摆?某一列摆不摆? #include<stdio.h> #include<iost ...
- python函数 | 列表生成式
在编写程序或者查看别人的程序时,经常会遇到列表生成式,这个使用起来并不复杂,但是非常有用,使我们的代码更加简洁灵活.很多python使用者并不太会使用它.今天,就给大家详细讲解列表生成式和生成器表达式 ...
- kafk设计要点
kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议,他是仿照AMQP( Advanced Message Queuing Protocol 高级消息队列协议)设计的 ...
- cBioPortal 数据库
http://www.cbioportal.org/ 参考连接 http://www.geneseed.com.cn/page464?article_id=413