TcpListener、TcpClient
2024-08-30 01:52:12
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);
}
}
}
}
最新文章
- C# - 集合类 - 集合接口
- Java集合类总结
- Solr4.8.0源码分析(8)之Lucene的索引文件(1)
- Codeforces 328A-IQ Test(数列)
- Android TextView文字描边的实现!!
- js 上下切换图片
- 基于Excel参数化你的Selenium2测试代码
- Netty ByteBuf源码分析
- (转)Memcached 在windows下的java使用
- MSSQL 自定义函数详解
- python之 json里字典中的value去重
- 【转载】详解一条sql语句的执行过程
- 【winform】userControl刷新父窗体的datagridview
- Arch Linux中使用VMware Workstation不能打开vmmon内核模块
- Loj 【CQOI 2006】简单题,mmp
- Wxpython零基础制作计算器
- skflow 分类与回归接口API 简单测试
- CentOS7上搭建LDAP-PDC并且将windows 2008 R2加入LDAP-PDC域
- Linux上vi编辑文件非正常退出后文件恢复
- HDU 4135:Co-prime(容斥+二进制拆分)