Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Нужна помощь с сокетами на C# (https://forum.antichat.xyz/showthread.php?t=89304)

l.sEw.l 27.10.2008 18:24

Нужна помощь с сокетами на C#
 
Написал я кое-что на пхп и мне понадобилось переписать под вин, пришлось осваивать сокеты на С#. В пхп сокеты - мегапросто, а вот в C# ну никак не могу разобраться с кучей возможных вариантов и т.д., кароче путаница полная в голове. Дело в том что я отлично знаю процедуру инициализации и использования сокета, мне нужен именно синтаксис, конкретный, рабочий, небольшой пример использования сокетов на C#, буквально коннект к яндексу, отправпа обчного заголовка и получение(вывод) контента. Выручайте...

Feonor 28.10.2008 00:49

ну может так, вот примерчик:
Код:

using System;
using System.Net;

class NetDemo
{
    public static void Main()
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.penisbot.ru");
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        Stream istrm = resp.GetResponseStream();
        /*теперь у нас в потоке код html-документа*/
        ...

незабудь закрыть поток resp.Close(); :cool:

ToniKapuchon 28.10.2008 01:00

HttpWebRequest
WebRequest
почитай про ети два класса - будет тебе счастья!!
а ваще про сокеты на шарпе первый раз слышу...

12usver12 28.10.2008 11:21

проще чем в шарпе уже некуда
WebClient wc = new WebClient();
wc.DownloadFile("yandex.ru","C:\\1.html");
// а потом Streamreader работать

а можно не сохраняя на диск, в память
HttpWebRequest webRequest =(HttpWebRequest)WebRequest.Create("http://rambler.ru");
HttpWebResponse WebResponse = (HttpWebResponse)webRequest.GetResponse();
StreamReader streamReader = new StreamReader(WebResponse.GetResponseStream(),Encod ing.GetEncoding(1251));
string source = streamReader.ReadToEnd();
streamReader.Close();

Jes 28.10.2008 16:02

http://www.java2s.com/Tutorial/CShar...0__Network.htm

W!z@rD 28.10.2008 19:39

омг, ToniKapuchon сколько работаешь с шарпом, да вообще с .NET?
выше указанные классы, это просто оболочки сокетов.

автор, как вариант можно тупо подгружать библиотеки. Атрибут DllImport (если мне память не изменяет)
P.S. вот же народ любит код дублировать, типа есть отличия.

l.sEw.l 28.10.2008 21:24

А как отправить обычный заголовок? Я попытался подобным образом:

Код:

public static void Main()
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://yandex.ru");
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

        StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding(1251));
        StreamWriter sw = new StreamWriter(req.GetRequestStream(), Encoding.GetEncoding(1251));

        sw.Write("GET / HTTP/1.0\r\nAccept: */*\r\nAccept-Language: ru\r\nUA-CPU: x86\r\nHost: yandex.ru\r\nConnection: Keep-Alive\r\n\r\n");

        string source = sr.ReadToEnd();
        Console.WriteLine(source);
        sr.Close();
        sw.Close();
        Console.ReadLine();
    }

Пишет ошибку в потоке стримрайтера...

l.sEw.l 28.10.2008 22:35

Все, нашел, очень полезная статья: _http://www.gotdotnet.ru/LearnDotNet/NETFramework/491563.aspx

12usver12 29.10.2008 01:07

я ж тебе дал готовый кусок кода, который это все дело выполняет тока без использования httpheaders но они в даном случае и не нужны, да и еще для отображения русских букв используй кодировку utf-8

l.sEw.l 31.10.2008 19:19

Можно узнать как в C#, в консольном приложении реализовать вывод(изменения) переменных в реальном времени. То есть, например, в консоль вывел две строки:
Бэд :
Гуд :

после двоиточий по идее должны стоять переменные, которые в процессе работы программы естественно будут изменяться. Так вот, как осуществить подобный вывод?


Время: 17:27