نمایش نتایج 1 تا 2 از 2

نام تاپیک: برنامه نویسی شبکه با C#‎.Net

  1. #1

    برنامه نویسی شبکه با C#‎.Net

    با سلام
    می خواهم که یک متن را از داخل یک سرور برای مثال با آدرس 192.168.0.1 به یک کلاینت به آدرس 192.168.0.2 بفرستم با پورت فرضی 8080 ،چگونه باید عمل کنم.
    با تشکر

  2. #2
    سلام

    این کد دارای دو بخش Client و Server است.

    این کد بخش Server :


    using System;
    using System.Windows.Forms;
    using System.Net.Sockets;
    using System.IO;

    namespace TCPSocketServer
    {
    /// <summary>
    /// Summary description for TCPSockServer.
    /// </summary>
    public class Server : Form
    {
    //////////////////////////////////////////////////////////////////////////////
    ///Variables & Properties
    //////////////////////////////////////////////////////////////////////////////
    Button btnStartServer;
    private StreamWriter serverStreamWriter;
    private StreamReader serverStreamReader;

    //////////////////////////////////////////////////////////////////////////////
    ///constructor
    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& #41;;

    //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
    }
    }
    }


    این کد بخش Client است:




    using System;
    using System.Windows.Forms;
    using System.Net.Sockets;
    using System.IO;

    namespace TCPSocketClient
    {
    /// <summary>
    /// Summary description for Client.
    /// </summary>
    public class Client : Form
    {
    /////////////////////////////////////////////////////////////////////////////
    ///Variables & Properties
    /////////////////////////////////////////////////////////////////////////////
    private Button btnConnectToServer;
    private Button btnSendMessage;
    private StreamReader clientStreamReader;
    private StreamWriter clientStreamWriter;

    /////////////////////////////////////////////////////////////////////////////
    ///Constructor
    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&# 41;;
    //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);
    }
    }
    }
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •