gpt4 book ai didi

c# - C#.Net中使用IP地址和端口号的TCP/IP客户端套接字程序

转载 作者:可可西里 更新时间:2023-11-01 02:45:20 25 4
gpt4 key购买 nike

TCP/IP 客户端套接字程序。这里我的主要要求是客户端发送消息,服务器接收消息并存储在 C#.Net 中的数据库表中,使用服务器 IP 地址和端口号。

最佳答案

您正在谈论一个简单的服务器-客户端程序。

你需要做什么。

  • 首先创建一个服务器程序并运行
  • 创建客户端并使用 Connect("SERVER IP", PORT)
  • 连接到您正在运行的服务器
  • 现在当客户端连接到服务器时,接收到服务器的消息并使用数据库连接将该消息存储在数据库中

指南:

更新 - 根据要求并作为指南,这里是一个工作的客户端和一个服务器

客户-

    using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;


namespace socket_prog
{
class Client
{
private static void Main(String[] args)
{
byte[] data = new byte[10];

IPHostEntry iphostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAdress = iphostInfo.AddressList[0];
IPEndPoint ipEndpoint = new IPEndPoint(ipAdress, 32000);

Socket client = new Socket(ipAdress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

try
{
client.Connect(ipEndpoint);

Console.WriteLine("Socket created to {0}", client.RemoteEndPoint.ToString());

byte[] sendmsg = Encoding.ASCII.GetBytes("This is from Client\n");

int n = client.Send(sendmsg);

int m = client.Receive(data);

Console.WriteLine("" + Encoding.ASCII.GetString(data));
client.Shutdown(SocketShutdown.Both);
client.Close();

}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}

Console.WriteLine("Transmission end.");
Console.ReadKey();

}
}
}

服务器-

using System;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace socket_prog
{
class Server
{
static void Main(string[] args)
{
byte[] buffer = new byte[1000];
byte[] msg = Encoding.ASCII.GetBytes("From server\n");
string data = null;

IPHostEntry iphostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = iphostInfo.AddressList[0];
IPEndPoint localEndpoint = new IPEndPoint(ipAddress, 32000);

ConsoleKeyInfo key;
int count = 0;

Socket sock = new Socket(ipAddress.AddressFamily,
SocketType.Stream, ProtocolType.Tcp);


sock.Bind(localEndpoint);
sock.Listen(5);

while (true)
{

Console.WriteLine("\nWaiting for clients..{0}", count);
Socket confd = sock.Accept();

int b = confd.Receive(buffer);
data += Encoding.ASCII.GetString(buffer, 0, b);

Console.WriteLine("" + data);
data = null;

confd.Send(msg);

Console.WriteLine("\n<< Continue 'y' , Exit 'e'>>");
key = Console.ReadKey();
if (key.KeyChar == 'e')
{
Console.WriteLine("\nExiting..Handled {0} clients", count);
confd.Close();
System.Threading.Thread.Sleep(5000);
break;
}
confd.Close();
count++;
}
}
}

}

首先运行服务器。然后运行客户端。

关于c# - C#.Net中使用IP地址和端口号的TCP/IP客户端套接字程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com