监听端口吗? 看看这个:using System; using System.Windows.Forms; using System.Net.Sockets; using System.IO; namespace TCPSocketServer { public class Server : Form { Button btnStartServer; private StreamWriter serverStreamWriter; private StreamReader serverStreamReader; public Server() { //create StartServer button set its properties & event handlers this.btnStartServer = new Button(); this.btnStartServer.Text = "Start Server"; this.btnStartServer.Click += new System.EventHandler(this.btnStartServer_Click); //add controls to form this.Controls.Add(this.btnStartServer); } ///Main Method public static void Main(string[] args) { //creat n display windows form Server tcpSockServer = new Server(); Application.Run(tcpSockServer); } ///Start Server private bool StartServer() { //create server's tcp listener for incoming connection TcpListener tcpServerListener = new TcpListener(4444); tcpServerListener.Start(); //start server Console.WriteLine("Server Started"); this.btnStartServer.Enabled = false; //block tcplistener to accept incoming connection Socket serverSocket = tcpServerListener.AcceptSocket(); try { if (serverSocket.Connected) { Console.WriteLine("Client connected"); //open network stream on accepted socket NetworkStream serverSockStream = new NetworkStream(serverSocket); serverStreamWriter = new StreamWriter (serverSockStream); serverStreamReader = new StreamReader(serverSockStream); } } catch (Exception e) { Console.WriteLine(e.StackTrace); return false; } return true; } ///Event handlers private void btnStartServer_Click(object sender, System.EventArgs e) { //start server if (!StartServer()) Console.WriteLine("Unable to start server"); //sending n receiving msgs while (true) { Console.WriteLine ("CLIENT: " + serverStreamReader.ReadLine()); serverStreamWriter.WriteLine("Hi!"); serverStreamWriter.Flush(); }//while } } }
客户端代码:using System; using System.Windows.Forms; using System.Net.Sockets; using System.IO;namespace TCPSocketClient { public class Client : Form { private Button btnConnectToServer; private Button btnSendMessage; private StreamReader clientStreamReader; private StreamWriter clientStreamWriter; public Client() { //create ConnectToServer button, set its properties & event handlers this.btnConnectToServer = new Button(); this.btnConnectToServer.Text = "Connect"; this.btnConnectToServer.Click += new System.EventHandler(btnConnectToServer_Click); //create SendMessage button, set its properties & event handlers this.btnSendMessage = new Button(); this.btnSendMessage.Text = "Send Message"; this.btnSendMessage.Top += 30; this.btnSendMessage.Width += 20; this.btnSendMessage.Click += new System.EventHandler(btnSendMessage_Click); //add controls to windows form this.Controls.Add(this.btnConnectToServer); this.Controls.Add(this.btnSendMessage); } ///Main method public static void Main(string[] args) { //create n display windows form Client tcpSockClient = new Client(); Application.Run(tcpSockClient); } ///Connect to server private bool ConnectToServer() { //connect to server at given port try { TcpClient tcpClient = new TcpClient("localhost", 4444); Console.WriteLine("Connected to Server"); //get a network stream from server NetworkStream clientSockStream = tcpClient.GetStream(); clientStreamReader = new StreamReader(clientSockStream); clientStreamWriter = new StreamWriter(clientSockStream); } catch (Exception e) { Console.WriteLine(e.StackTrace); return false; } return true; } ///Event Handlers private void btnConnectToServer_Click(object sender, System.EventArgs e) { //connect to server if (!ConnectToServer()) Console.WriteLine("Unable to connect to server"); } private void btnSendMessage_Click(object sender, System.EventArgs e) { try { //send message to server clientStreamWriter.WriteLine("Hello!"); clientStreamWriter.Flush(); Console.WriteLine("SERVER: " + clientStreamReader.ReadLine()); } catch (Exception se) { Console.WriteLine(se.StackTrace); } } } }
看看这个:using System;
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;
namespace TCPSocketServer
{
public class Server : Form
{
Button btnStartServer;
private StreamWriter serverStreamWriter;
private StreamReader serverStreamReader; public Server()
{
//create StartServer button set its properties & event handlers
this.btnStartServer = new Button();
this.btnStartServer.Text = "Start Server";
this.btnStartServer.Click += new System.EventHandler(this.btnStartServer_Click);
//add controls to form this.Controls.Add(this.btnStartServer);
} ///Main Method
public static void Main(string[] args)
{
//creat n display windows form Server tcpSockServer = new Server();
Application.Run(tcpSockServer);
} ///Start Server
private bool StartServer()
{
//create server's tcp listener for incoming connection
TcpListener tcpServerListener = new TcpListener(4444);
tcpServerListener.Start(); //start server Console.WriteLine("Server Started");
this.btnStartServer.Enabled = false;
//block tcplistener to accept incoming connection Socket serverSocket = tcpServerListener.AcceptSocket(); try
{
if (serverSocket.Connected)
{
Console.WriteLine("Client connected");
//open network stream on accepted socket NetworkStream serverSockStream = new NetworkStream(serverSocket);
serverStreamWriter = new StreamWriter
(serverSockStream);
serverStreamReader = new StreamReader(serverSockStream);
}
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
return false;
} return true;
} ///Event handlers
private void btnStartServer_Click(object sender, System.EventArgs e)
{
//start server
if (!StartServer())
Console.WriteLine("Unable to start server"); //sending n receiving msgs while (true)
{
Console.WriteLine
("CLIENT: " + serverStreamReader.ReadLine());
serverStreamWriter.WriteLine("Hi!");
serverStreamWriter.Flush();
}//while }
}
}
using System.Windows.Forms;
using System.Net.Sockets;
using System.IO;namespace TCPSocketClient
{
public class Client : Form
{
private Button btnConnectToServer;
private Button btnSendMessage;
private StreamReader clientStreamReader;
private StreamWriter clientStreamWriter; public Client()
{
//create ConnectToServer button, set its properties & event handlers
this.btnConnectToServer = new Button();
this.btnConnectToServer.Text = "Connect";
this.btnConnectToServer.Click +=
new System.EventHandler(btnConnectToServer_Click);
//create SendMessage button, set its properties & event handlers this.btnSendMessage = new Button();
this.btnSendMessage.Text = "Send Message";
this.btnSendMessage.Top += 30;
this.btnSendMessage.Width += 20;
this.btnSendMessage.Click += new System.EventHandler(btnSendMessage_Click);
//add controls to windows form this.Controls.Add(this.btnConnectToServer);
this.Controls.Add(this.btnSendMessage);
}
///Main method
public static void Main(string[] args)
{
//create n display windows form
Client tcpSockClient = new Client();
Application.Run(tcpSockClient);
} ///Connect to server
private bool ConnectToServer()
{
//connect to server at given port
try
{
TcpClient tcpClient = new TcpClient("localhost", 4444);
Console.WriteLine("Connected to Server");
//get a network stream from server NetworkStream clientSockStream = tcpClient.GetStream();
clientStreamReader = new StreamReader(clientSockStream);
clientStreamWriter = new StreamWriter(clientSockStream);
}
catch (Exception e)
{
Console.WriteLine(e.StackTrace);
return false;
}
return true;
} ///Event Handlers
private void btnConnectToServer_Click(object sender, System.EventArgs e)
{
//connect to server
if (!ConnectToServer())
Console.WriteLine("Unable to connect to server");
}
private void btnSendMessage_Click(object sender, System.EventArgs e)
{
try
{
//send message to server
clientStreamWriter.WriteLine("Hello!");
clientStreamWriter.Flush();
Console.WriteLine("SERVER: " + clientStreamReader.ReadLine());
}
catch (Exception se)
{
Console.WriteLine(se.StackTrace);
}
}
}
}
给解释下。。