using System;
using System.Net.Sockets;
using System.Net;
using System.Collections.Generic;
using System.Text;
namespace SServer
{
public class SServer
{
public static void Main(string[] args)
{
byte[] bytes = new byte[1024];
//Устанавливаем для сокета локальную конечную точку
IPHostEntry ipHost = Dns.Resolve("localhost");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
//Создаем сокет TCP\IP
Socket sListener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
//Назначаем сокет локальной конечной точку
// и слушаем входящие сокеты
try
{
sListener.Bind(ipEndPoint);
sListener.Listen(10);
//Начинаем слущать соединения
while (true)
{
Console.WriteLine("Waiting for connections... ",ipEndPoint);
//программа приостанавливается,ожидая входящее соединение
Socket handler = sListener.Accept();
string data = null;
//дождались клиента,пытающегося с нами соединиться
int bytesRec = handler.Receive(bytes);
data += Encoding.ASCII.GetString(bytes, 0, bytesRec);
//выводим данные на консоль
Console.WriteLine("Сlient Message : {0}", data);
string theReply = "Thank You for your message " + data.Length.ToString() + " characters...I'm the Body!!!";
byte[] msg = Encoding.ASCII.GetBytes(theReply);
handler.Send(msg);
handler.Shutdown(SocketShutdown.Both);
handler.Close();
}
}
catch(Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
[C#]Программа клиент-сервер.
Кто нибудь знает как организовать программу клиет-сервер??? Просто курсач надо делать. а у меня книги нет даже!!!! Может есть у кого примерчик какой нибудь???
Цитата: iennefer
Кто нибудь знает как организовать программу клиет-сервер??? Просто курсач надо делать. а у меня книги нет даже!!!! Может есть у кого примерчик какой нибудь???
Цитата: В.И.Ленин
Без книг тяжко...
:D Как ты без книг собираешься делать ?
Есть книга .NET Сетевое программирование для профессионалов,авторы Эндрю Кровчик и другие.Глава 4.Работа с сокетами.стр.109.Там есть готовый пример.Скачай книгу и делай.
Спасибо!!! Может поможет!!! Нет книга то у меня есть но там нет клиент-серверных программ!!! нету там короче удаленных компонентов, объектов!!!
Сервер.
Код:
Клиент.
Код:
using System;
using System.Net.Sockets;
using System.Net;
using System.Collections.Generic;
using System.Text;
namespace SClient
{
public class SClient
{
public static void Main(string[] args)
{
byte[] bytes = new byte[1024];
//Соединяемся с удаленным устройством
try
{
//Устанавливаем удаленную конечную точку для сокета
IPHostEntry ipHost = Dns.Resolve("127.0.01");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
//Соединяем сокет с удаленной конечной точкой
sender.Connect(ipEndPoint);
Console.WriteLine("Connection... {0}",
sender.RemoteEndPoint.ToString());
string theMessage = "Hello Body...I'm Client 1.Fu## you!!! :)))";
byte[] msg = Encoding.ASCII.GetBytes(theMessage + " < The End > ");
//отправляем данные через сокет
int bytesSent = sender.Send(msg);
//Получаем ответ от удаленного устройства
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Server says : {0}",
Encoding.ASCII.GetString(bytes, 0, bytesRec));
//Освобождаем сокет
sender.Shutdown(SocketShutdown.Both);
sender.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
using System.Net.Sockets;
using System.Net;
using System.Collections.Generic;
using System.Text;
namespace SClient
{
public class SClient
{
public static void Main(string[] args)
{
byte[] bytes = new byte[1024];
//Соединяемся с удаленным устройством
try
{
//Устанавливаем удаленную конечную точку для сокета
IPHostEntry ipHost = Dns.Resolve("127.0.01");
IPAddress ipAddr = ipHost.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
Socket sender = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
//Соединяем сокет с удаленной конечной точкой
sender.Connect(ipEndPoint);
Console.WriteLine("Connection... {0}",
sender.RemoteEndPoint.ToString());
string theMessage = "Hello Body...I'm Client 1.Fu## you!!! :)))";
byte[] msg = Encoding.ASCII.GetBytes(theMessage + " < The End > ");
//отправляем данные через сокет
int bytesSent = sender.Send(msg);
//Получаем ответ от удаленного устройства
int bytesRec = sender.Receive(bytes);
Console.WriteLine("Server says : {0}",
Encoding.ASCII.GetString(bytes, 0, bytesRec));
//Освобождаем сокет
sender.Shutdown(SocketShutdown.Both);
sender.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
Спасибо M_Valery!Вы мне оч помогли!Но может быть вы знаете ещё как в эту программу вставит проверку кода ошибки errorlookup и функции инициализациии wsastartup?Заранее благодарна!:)
Зачем вам WSAStartup() если у вас такая мощная штука как .NET ???!!!
У меня, Phodopus, это задание на курсач. И это один из пунктов, который должен присутствовать в куросовой: использование socket_error, WSAGetLastError? ErrorLookup и WSAStartup.Ну, собственно, вот зачем, и если честно не очень понимаю куда эт всё вставить, ну наверн вначало, да?А вот с кодом проблема, вот.:confused: