1.概要
1.1 服务端
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Any, 2112));
socket.Listen(10);
Socket socket1 = socket.Accept();
int num = socket1.Receive(receivedBytes);
socket1.Send(replyMessage);
1.2 客户端
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(iPEndPoint);
socket.Send(forwardMessage);
int num = socket.Receive(receivedBytes);
2 代码
2.1 代码-服务端
using System;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text;
namespace ConsoleApp9
{
class Program
{
delegate void updateDisplayDelegae(String text);
static void Main(string[] args)
{
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(new IPEndPoint(IPAddress.Any, 2112));
socket.Listen(10);
while (true) {
Console.WriteLine("");
Socket socket1 = socket.Accept();
String receivedValue = string.Empty;
while (true) {
Byte[] receivedBytes = new Byte[1024];
int num = socket1.Receive(receivedBytes);
Console.WriteLine("receiveing .");
receivedValue += Encoding.ASCII.GetString(receivedBytes, 0, num);
if (receivedValue.IndexOf("FINAL") > -1) {
break;
}
}
Console.WriteLine("receivedValue:{0}", receivedValue);
string replyValue = "message successfully received.";
byte[] replyMessage = Encoding.ASCII.GetBytes(replyValue);
socket1.Send(replyMessage);
socket1.Shutdown(SocketShutdown.Both);
}
socket.Close();
Console.ReadKey();
}
}
}
2.2 代码-客户端
using System;
using System.Net.Sockets;
using System.IO;
using System.Net;
using System.Text;
namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
byte[] receivedBytes = new byte[1024];
IPHostEntry iPHostEntry = Dns.Resolve("127.0.0.1");
IPAddress iPAddress = iPHostEntry.AddressList[0];
IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 2112);
Console.WriteLine("Starting: ceating socket object");
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(iPEndPoint);
Console.WriteLine("");
string sendingMessage = "hello word service";
byte[] forwardMessage = Encoding.ASCII.GetBytes(sendingMessage+ "[FINAL]");
socket.Send(forwardMessage);
int num = socket.Receive(receivedBytes);
Console.WriteLine("收到的数据:{0}",Encoding.ASCII.GetString(receivedBytes,0,num));
socket.Shutdown(SocketShutdown.Both);
socket.Close();
Console.ReadKey();
}
}
}
3.运行结果

该博客展示了如何使用C#实现一个简单的TCP套接字通信,包括服务端监听和接收连接,以及客户端发起连接并发送接收数据。服务端通过`Socket.Accept()`接收客户端请求,读取直到接收到'FINAL'标志,然后发送确认消息。客户端则连接到指定IP和端口,发送数据并接收服务端响应。
1336

被折叠的 条评论
为什么被折叠?



