Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Net;
- using System.Net.Sockets;
- namespace ClientServer_080423 {
- class Program {
- static void Main(string[] args) {
- try {
- Console.WriteLine("Enter 1 to launch the client, else server");
- if (Console.ReadLine() == "1") {
- IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5834);
- Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- socket.Connect(ipe);
- string message = "";
- do {
- Console.WriteLine("Enter your message(0 to exit):");
- message = Console.ReadLine();
- byte[] data = Encoding.Unicode.GetBytes(message);
- socket.Send(data);
- StringBuilder builder = new StringBuilder();
- int bytes = 0; // количество полученных байт
- do {
- bytes = socket.Receive(data, data.Length, 0);
- builder.Append(Encoding.Unicode.GetString(data, 0, bytes));
- }
- while (socket.Available > 0);
- Console.WriteLine("Ответ сервера: " + builder.ToString());
- } while (message != "0");
- socket.Shutdown(SocketShutdown.Both);
- socket.Close();
- } else {
- IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 5834);
- Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- socket.Bind(ipe);
- socket.Listen(5834);
- Socket handler = socket.Accept();
- while (true) {
- // получаем ответ
- byte[] data = new byte[256]; // буфер для ответа
- int recieved = handler.Receive(data, SocketFlags.None);
- string response = Encoding.Unicode.GetString(data, 0, recieved);
- Console.WriteLine("{0}: {1}", ((IPEndPoint)(handler.RemoteEndPoint)).Port.ToString(), response);
- handler.Send(Encoding.Unicode.GetBytes("Answer recieved: " +Encoding.Unicode.GetString(data, 0, recieved)));
- }
- socket.Shutdown(SocketShutdown.Both);
- socket.Close();
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement