注:很多代码是从高手那里弄来的,希望高手们莫怪,对你有用的帮忙顶下。
别忘记引进命名空间
using System.Net;
using System.Net.Sockets;
Sever
int port = 2000; //指定端口 (最后些在配置文件中)
String host = "127.0.0.1"; //指定IP
IPAddress ip = IPAddress.Parse(host);//把ip地址字符串转换为IPAddress类型的实例
IPEndPoint ipep = new IPEndPoint(ip, port);//用指定的端口和ip初始化IPEndPoint类的新实例
int recv;//用于表示客户端发送的信息长度
byte[]data=new byte[1024];//用于缓存客户端所发送的信息,通过socket传递的信息必须为字节数组
//IPEndPoint ipep=new IPEndPoint(IPAddress.Any,9050);//本机预使用的IP和端口(本人进行测试没有通过)
Socket newsock=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
newsock.Bind(ipep);//绑定
newsock.Listen(10);//监听
Console.WriteLine("waiting for a client");
Socket client=newsock.Accept();//当有可用的客户端连接尝试时执行,并返回一个新的socket,用于与客户端之间的通信
IPEndPoint clientip=(IPEndPoint)client.RemoteEndPoint;
Console.WriteLine("connect with client:"+clientip.Address+"atport:"+clientip.Port);
string welcome="welcome here!";
data=Encoding.ASCII.GetBytes(welcome);
client.Send(data,data.Length,SocketFlags.None);//发送信息
while(true)
{//用死循环来不断的从客户端获取信息
data=new byte[1024];
recv=client.Receive(data);
Console.WriteLine("recv="+recv);
if(recv==0)//当信息长度为0,说明客户端连接断开
break;
Console.WriteLine(Encoding.ASCII.GetString(data,0,recv));
client.Send(data,recv,SocketFlags.None);
}
Console.WriteLine("Disconnected from"+clientip.Address);
client.Close();
newsock.Close();
Client
byte[] data = new byte[1024];
Socket newclient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Console.Write("please input the server ip:");
string ipadd = Console.ReadLine();
Console.WriteLine();
Console.Write("please input the server port:");
int port = Convert.ToInt32(Console.ReadLine());
IPEndPoint ie = new IPEndPoint(IPAddress.Parse(ipadd), port);//服务器的IP和端口
try
{
//因为客户端只是用来向特定的服务器发送信息,所以不需要绑定本机的IP和端口。不需要监听。
newclient.Connect(ie);
}
catch (SocketException e)
{
Console.WriteLine("unable to connect to server");
Console.WriteLine(e.ToString());
return;
}
int recv = newclient.Receive(data);
string stringdata = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringdata);
while (true)
{
string input = Console.ReadLine();
if (input == "exit")
break;
newclient.Send(Encoding.ASCII.GetBytes(input));
data = new byte[1024];
recv = newclient.Receive(data);
stringdata = Encoding.ASCII.GetString(data, 0, recv);
Console.WriteLine(stringdata);
}
Console.WriteLine("disconnect from sercer");
newclient.Shutdown(SocketShutdown.Both);
newclient.Close();
分享到:
相关推荐
本教程将深入探讨“C# Socket实例源码”,通过一个简单的Winform应用程序来讲解服务端与客户端的交互过程,这对于初学者来说是一次很好的学习机会。 首先,Socket是C#中进行网络通信的基础类,它基于TCP/IP协议栈,...
下面,我们将详细讲解如何创建和使用C# Socket实例。 首先,我们先看"server"文件,这是一个简单的服务器端程序。服务器端的主要任务是监听客户端的连接请求,并对连接的客户端发送或接收数据。在C#中,我们首先...
对于初学者而言,这是一个很好的实践项目,可以帮助他们更好地理解 Socket 编程的核心思想及其应用。 通过上述分析,我们可以看出 C# 提供了一套非常完整的 Socket 编程接口,使得开发者能够轻松地实现网络通信功能...
在IT行业中,网络通信是至关重要...无论是初学者还是有经验的开发者,都能从中获益,快速构建起可靠的网络通信系统。记得仔细研究提供的"FlyTcpFrameworkDemo"示例和"FlyTCPFramework手册",这将是掌握这个框架的关键。
本项目“基于C#的socket实例”旨在帮助开发者理解和应用C#中的Socket编程,实现客户端与服务器端之间的数据传输。在这个项目中,我们将深入探讨Socket的基本概念、C#中的Socket类、跨线程通信以及委托回调机制。 ...
本项目中的C# Socket调试助手通过创建Socket实例,实现了客户端与服务器端的连接、数据传输以及消息的接收和解析。 首先,我们需要了解Socket的基本工作流程。在C#中,创建Socket实例后,通常需要设置其协议类型...
对于初学者来说,这样的实践项目是提高技能的绝佳途径,因为它提供了一个从零开始构建网络应用的机会。 总之,C# Socket通信是网络编程的基础,理解和掌握这一技术对成为一名合格的IT专业人员至关重要。通过阅读和...
这个"C# 网络编程之socket tcp 通讯demo样例"可能涵盖了这些基本操作,为初学者提供了理解TCP通信机制的起点。通过阅读和理解代码,你可以了解到如何在C#中建立和管理TCP连接,以及如何进行数据的收发。对于进一步的...
这个DEMO对于初学者来说,是理解C# Socket通信机制的一个良好起点。通过分析和运行这个示例,开发者可以学习到如何创建和管理Socket,以及如何在实际应用中实现数据交换。同时,这个简单的聊天功能也能帮助开发者...
总的来说,C# Socket编程为开发者提供了强大的网络通信能力,无论是初学者还是有经验的开发者,都能通过学习和实践提升自己的技能。通过理解Socket的工作原理和C#中的实现方式,你将能够构建高效、稳定的网络应用...
本资源"**C#_Socket源码示例**"是针对初学者设计的,旨在帮助他们理解并掌握C#中的Socket编程技术。Socket编程是网络编程的基础,它允许应用程序通过网络发送和接收数据。 Socket在C#中的应用主要基于System.Net...
"150个C#初学者编程实例"压缩包提供了一系列的练习,旨在帮助新手快速上手C#编程。 1. **基础语法**:C#的基础包括变量、数据类型、运算符、流程控制(如if语句、switch语句、for循环、while循环)等。实例中的代码...
本项目提供的代码示例对于初学者来说,是一个很好的学习资源。通过阅读和理解代码,可以深入了解Socket编程的基本原理和技巧。同时,由于代码结构清晰,注释明了,对于已有基础的开发者,也是一个理想的二次开发起点...
本篇文章将详细解析"C# Socket简单实例",帮助初学者理解如何使用C#进行网络通信。 首先,我们要明白Socket在计算机网络中的角色。Socket是操作系统提供的一个接口,它允许应用程序通过网络发送和接收数据。在C#中...
这个“c#Socket实例”应该包含了一个简单的客户端和服务器程序,你可以解压提供的"Socket"文件,运行并分析代码,进一步了解和学习C#中的Socket编程。记住,实践是最好的老师,动手编写和调试代码是提升技能的关键。
总的来说,这个Demo是一个很好的学习和实践C# Socket通信的起点,无论你是初学者还是有经验的开发者,都能从中受益。通过深入研究和修改代码,你可以创建更复杂的网络应用,如聊天室、文件传输服务等。
简单易懂的Socket发送接收实例,绝对可用; 压缩包中SocketClient为客户端,SocketTest为服务端; 可在客户端输入内容,按回车发送; 服务端会显示接收到的数据并做出回应...代码中注释也比较完整,为初学者用心打造;
本实例将深入探讨C#中的Socket服务器和客户端的实现,旨在帮助初学者和有经验的开发者更好地理解和应用Socket通信。 首先,我们要理解Socket的基本概念。Socket,也称为套接字,是网络通信中的一个接口,它允许应用...
本教程主要聚焦于C#中的Socket实例,适用于那些正在学习C#和.NET平台的开发者,特别是想要掌握Winform应用程序中客户端与服务器端交互的初学者。 首先,Socket源于Berkeley套接字,是操作系统提供的网络通信接口,...
这个"C# Socket 实现源码"实例是一个很好的学习资源,它将帮助初学者理解TCP Socket的工作原理,包括连接建立、数据传输和断开连接等基本操作。通过实际编写和运行代码,你可以更深入地了解网络编程,并为更复杂的...