using System;
using System.Net;
using System.Net.Sockets;
namespace TY.Net
{
/// <summary>
/// 封装有关创建到 Internet 的 TCP 和 UDP 连接的详细信息。
/// </summary>
public class SocketsT
{
/// <summary>
/// 委托 收到信息时执行的委托
/// </summary>
/// <param name="mes"></param>
public delegate void ShowMessage(string mes);
/// <summary>
/// 事件 收到信息时执行的事件
/// </summary>
public event ShowMessage ShowMes;
/// <summary>
/// TCP侦听端口
/// </summary>
/// <param name="port">端口</param>
/// <param name="serverIP">目标IP</param>
public void tcpGetString(string serverIP, int port)
{
TcpListener server = null;
try
{
// Set the TcpListener on port 13000.
IPAddress localAddr = IPAddress.Parse(serverIP);
// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
// Buffer for reading data
Byte[] bytes = new Byte[256];
String data = null;
// Enter the listening loop.
while (true)
{
// Perform a blocking call to accept requests.
// You could also user server.AcceptSocket() here.
TcpClient client = server.AcceptTcpClient();
data = null;
// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();
int i;
// Loop to receive all the data sent by the client.
while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
{
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.UTF8.GetString(bytes, 0, i);
showMess(data);
}
// Shutdown and end connection
client.Close();
}
}
catch (SocketException e)
{
showMess(string.Format("SocketException: {0}", e));
}
finally
{
// Stop listening for new clients.
server.Stop();
}
}
/// <summary>
/// 请重写ShowMes事件 详细看说明
/// </summary>
/// <param name="data">接收到的信息或错误信息</param>
private void showMess(String data)
{
if (ShowMes != null)
{
ShowMes(data);
}
}
/// <summary>
/// 发送连接
/// 支持中文
/// </summary>
/// <param name="serverIP">目标IP</param>
/// <param name="message">发送信息</param>
/// <param name="port">目标端口</param>
public static void tcpSendText(String serverIP, String message, int port)
{
TcpClient client = new TcpClient(serverIP, port);
// Translate the passed message into ASCII and store it as a Byte array.
Byte[] data = System.Text.Encoding.UTF8.GetBytes(message);
// Get a client stream for reading and writing.
//
Stream stream = client.GetStream();
NetworkStream stream = client.GetStream();
// Send the message to the connected TcpServer.
stream.Write(data, 0, data.Length);
stream.Close();
client.Close();
}
}
}
// 使用的端口,请开启防火墙
// 并注意在窗体的线程处理
// 命令行下则不用
TcpListener
和TcpClient类是对Socket的进一步封装,为基于TCP协议的网络通信提供更加便捷的调用方式。
TcpListener
在服务器负责监听和接受客户端的连接请求,TcpClient类提供一系列可用于TCP网络通信的API,是以流的方式来读写数据的,调用Get
Stream
的方法会发挥一个Network
Stream
实例,即可
发送
和
接收数据
。
C#
的TcpListe
C#
网络编程(同步传输字符串) - Part.2<!-- google_ad_client = "pub-0711576186430396"; /* 250x250, 创建于 08-4-1 */ google_ad_slot = "1772391063"; google_ad_width = 250; google_ad_height = 250; //-->
服务器端的步骤如下。
(1)建立服务器端的Socket,开始侦听整个网络中的连接请求。
(2)当检测到来自客户端的连接请求时,向客户端
发送
收到连接请求的信息,并建立与客户端之间的连接。
(3)当完成通信后,服务器关闭与客户端的Socket连接。
客户端的步骤如下。
(1)建立客户端的Socket,确定要连接的服务器的主...
TcpListener
和TcpClient类为一组,用作客户端和服务器
跳转门套接字网络编程TcpClienthttps://blog.csdn.net/qq_44708426/article/details/120253834
TcpListener
类用来侦听来自TCP网络客户端的连接。可
使用
TcpClient或Socket来连接
TcpListener
可
使用
IPEndPoint、本地IP地址及端口号或者仅
使用
端口号,来创建
TcpListener
。
TcpListener
类的属性
TcpL.
//-----------这是服务端
TcpListener
------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.
Sockets
;
using S...
//---------- 服务端
TcpListener
--------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sock...
c#
Socket编程,
使用
TcpListener
,服务器循环
接收
字符串后输出创建
TcpListener
服务类用Client2类来
接收
客户消息创建TcpClient客户端
创建
TcpListener
服务类
public static class MyTcp
Server
public static readonly List<Client2> Client...
C#
的TCP Socket (异步方式)
C#
的tcp Socket设置自定义超时时间
C#
TCP socket
发送
大数据包时,
接收
端和
发送
端数据不一致 服务端
接收
Receive不完全
服务器端:
TcpListener
listener = new
TcpListener
(IP, 1234);