使用IP地址和端口号的C#.Net中的TCP / IP Clent套接字程序
TCP / IP客户端套接字程序。这里我的主要要求是客户端发送消息和服务器接收消息并存储在C#.Net中的数据库表中,使用服务器IP地址和端口号。
TCP/IP Client Socket Program. Here My Main Requirement is Client Send Message and server receive message and store in database table in C#.Net, Using Server IP Address and Port Number.
感谢一个。
您正在谈论一个简单的Server-Client程序。
You are talking about a simple Server-Client program.
您需要做什么。
- 创建服务器程序并首先运行
- 创建客户端并连接到正在运行的服务器
- 现在,当客户端连接到服务器时,接收到服务器的消息使用数据库连接将该消息存储在数据库中
指南:
写客户端 -
http://csharp.net-informations.com/communications/csharp-client-socket.htm
C#资料库存取[SQL] -
http://csharp.net-informations.com/data-providers/csharp-sql-server-connection.htm
C# database access [SQL] - http://csharp.net-informations.com/data-providers/csharp-sql-server-connection.htm
UPDATE - 根据请求,作为指导,这里是一个工作的客户端和服务器
UPDATE - As requested and as a guidance here is a working client and a server
CLIENT-
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();
}
}
}
SERVER-
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++;
}
}
}
}
首先运行服务器。然后运行客户端。
Run server first. Then run client.