1.TcpClient

using System;
using System.Text;
using System.Net.Sockets; namespace tcpclient
{
class tcpclient
{
static void Main(string[] args)
{
try
{
//建立客户端套接字
TcpClient tcpclnt = new TcpClient();
Console.WriteLine("正在连接服务器..."); //连接服务器
tcpclnt.Connect("127.0.0.1", ); //得到客户端的流
NetworkStream stm = tcpclnt.GetStream();
while (true)
{
Console.Write("客户端说:");
string str = Console.ReadLine();//输入说话内容
//发送字符串
System.Text.UTF8Encoding utf8 = new UTF8Encoding(); //可以处理中文
byte[] ba = utf8.GetBytes(str);
stm.Write(ba, , ba.Length); //接收从服务器返回的信息
byte[] bb = new byte[];
int k = stm.Read(bb, , );
//输出服务器端返回的信息
Console.WriteLine("服务器说:" + utf8.GetString(bb, , k));
}
tcpclnt.Close(); }
catch (Exception e)
{
Console.WriteLine("错误..." + e.StackTrace);
}
} }
}

2.TcpListener

using System;
using System.Text;
using System.Net.Sockets;
using System.Net; namespace tcpchater
{
class tcpserver
{
static void Main(string[] args)
{
try
{
//初始化监听,端口为8001
TcpListener myList = new TcpListener(IPAddress.Parse("127.0.0.1"), );
//开始监听服务器端口
myList.Start(); Console.WriteLine("启动服务器端,端口服务...");
Console.WriteLine("本地节点为:" + myList.LocalEndpoint);//LocalEndpoint属性 标识正用于侦听传入客户端连接请求的本地网络接口和端口号
Console.WriteLine("等待客户端连接..."); //等待处理接入连接请求
Socket s = myList.AcceptSocket(); //新建立的连接用套接字s表示
Console.WriteLine("客户端连接来自 " + s.RemoteEndPoint + " 已上线.");
while (true)
{
System.Text.UTF8Encoding utf8 = new UTF8Encoding(); //可以处理中文
//接收客户信息
byte[] b = new byte[];
int k = s.Receive(b);
Console.Write("客户端说:" + utf8.GetString(b, , k));
Console.WriteLine(); Console.Write("服务器端说:");
//处理客户端请求,给客户端回应
string str = Console.ReadLine();
s.Send(utf8.GetBytes(str));
}
//释放资源,结束监听
s.Close();
myList.Stop(); }
catch (Exception e)
{
Console.WriteLine("错误..." + e.StackTrace);
}
}
}
}

TcpListener、TcpClient的更多相关文章

  1. 跟随上次的socket sever,追加Tcplistener、Httplistener的server

    一.Tcplistener搭建web server 1.同socket类似,Tcplistener其实是对socket的封装,方便编程,先初始化tcplistener并且开始监听 //初始化端点信息 ...

  2. [C#]使用TcpListener及TcpClient开发一个简单的Chat工具

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本文使用的开发环境是VS2017及dotNet4.0,写此随笔的目的是给自己及新开发人员作为参 ...

  3. TcpListerner、TcpClient 、邮件发送MailMessage、SmtpClient类

    一.服务端 TcpListener server = );//定义监听器 server.Start();//启动监听器 ]; //创建一个容器用于接受数据 string data = null; wh ...

  4. muduo::Connector、TcpClient分析

    Connector TcpClient Connector Connector用来发起连接. 在非堵塞网络中,主动发起连接比被动接收连接更为复杂,由于要考虑错误处理,还要考虑重试. 主要难点在于 1. ...

  5. GJM :异步Socket [转载]

    原帖地址:http://blog.csdn.net/awinye/article/details/537264 原文作者:Awinye 目录(?)[-] 转载请原作者联系 Overview of So ...

  6. 你也可以写聊天程序 - C# Socket学习1

    简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单的聊天程序. 一些基础类 首先我们每天打开浏览器访问网页信 ...

  7. 你也可以写个聊天程序 - C# Socket学习1

    原文:你也可以写个聊天程序 - C# Socket学习1 简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单 ...

  8. C#网络编程入门之UDP

    目录: C#网络编程入门系列包括三篇文章: (一)C#网络编程入门之UDP (二)C#网络编程入门之TCP (三)C#网络编程入门之HTTP 一.概述 UDP和TCP是网络通讯常用的两个传输协议,C# ...

  9. C#网络编程入门之TCP

    目录: C#网络编程入门系列包括三篇文章: (一)C#网络编程入门之UDP (二)C#网络编程入门之TCP (三)C#网络编程入门之HTTP 一.概述 UDP和TCP是网络通讯常用的两个传输协议,C# ...

随机推荐

  1. (转)Linux服务器SNMP常用OID

    原文:https://www.haiyun.me/archives/linux-snmp-oid.html 收集整理一些Linux下snmp常用的OID,用做服务器监控很不错.服务器负载: 1 2 3 ...

  2. Oracle 数据表的管理

    1.创建表的的表名规则 a.必须已字母开头 b.长度不能超过30 c.不能是Oracle的保留字 d.只能使用如下字符:A-Z.a-z.1-9.#,$等 2.Oracle基本数据类型 2.1 字符型数 ...

  3. Robot Framework_Ride(Edit标签)

    前言 RIDE 作为 Robot Framework 的“脸面”,虽然我们已经可以拿它来创建和运行测试了,但我们对它的认识并不全面,这一小节我们将了解这个工具的使用 Edit标签 下面我们来看一看测试 ...

  4. 修改eclipse下tomcat的内存大小/解决内存溢出

    我们安装完成eclipse之后,在我们的安装目录下有一个名为eclipse.ini文件. 打开文件里面的内容如下: -startup plugins/org.eclipse.equinox.launc ...

  5. unity 读取外部exe程序控制台信息

    由于需要获取显卡信息,但是unity的自带函数,只能输出1个显卡 c#倒是可以但是引用了一个下载的dll   System.Management.dll 这个dll放到unity用不了,因为mono不 ...

  6. idea 下 启动maven项目,mybatis报错 Error parsing SQL Mapper Configuration. Cause: java.io.IOException。。。。。

    我的具体报错日志是   Error parsing SQL Mapper Configuration. Cause: java.io.IOException  Could not find resou ...

  7. Ubuntu14.04搭建Oracle instantClient 11.2.0.4并配置cx_Oracle5.1.2

    一.配置Oracle instantClient 11.2.0.4 1.下载Oracle客户端: 打开http://www.oracle.com/technetwork/topics/linuxx86 ...

  8. DIY了一下自己blog的UI

    当年才学前端时就想改自己blog的UI,然鹅当时没看见那个“申请JS权限”,一直以为blog不能随意DIY样式,只改了少许CSS.现在重新看看设置管理选项,简单修改了一下样式(注意:修改样式之前发邮件 ...

  9. 【转】.NET 4.5 使用async和await关键字调用异步方法

    async和await关键字是.NET 4.5新增加的异步编程方式,通过使用这两个关键字可以轻松便捷的编写异步方法.使用async关键字声明异步方法,使用await关键字等待和获取异步方法返回的结果. ...

  10. CentOS Linux 7.3 1611 (Core) 配置静态IP地址

    详见: http://blog.csdn.net/johnnycode/article/details/50184073 设置静态IP 关于静态IP设置官方已经给出答案有兴趣的可以看官方WIKI指导, ...