Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Чего не работает??? Добавлено: 06.08.06 20:12  

Автор вопроса:  Sacred Phoenix | ICQ: 304238252 
Imports Console = System.Console
Public Class Main
   Public Shared pop3Client As System.Net.Sockets.Socket

   Public Shared Sub Main()
      pop3Client = New System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp)
      pop3Client.NoDelay = True
      pop3Client.Connect("my.inbox.com", 110)
      Console.WriteLine(String.Format("Server: {0}", ReceiveBuffer()))

      SendCommand("noop")
      Console.WriteLine(String.Format("Server: {0}", ReceiveBuffer()))

      Console.ReadKey()
   End Sub

   Public Shared Function ReceiveBuffer() As String
      Dim readBuffer(1023) As Byte
      Dim Received As Integer
      Dim Result As String = ""

      Received = pop3Client.Receive(readBuffer)
      Do While (Received > 0)
         Result &= System.Text.Encoding.ASCII.GetString(readBuffer)
         System.Array.Clear(readBuffer, 0, readBuffer.Length)
         Received = pop3Client.Receive(readBuffer)
      Loop

      Return Result.Substring(0, Result.IndexOf(Microsoft.VisualBasic.Strings.Chr(0)))
   End Function

   Public Shared Sub SendCommand(ByVal Command As String)
      Dim sendBuffer(1023) As Byte

      sendBuffer = System.Text.Encoding.ASCII.GetBytes(Command & Microsoft.VisualBasic.ControlChars.NewLine)
      pop3Client.Send(sendBuffer)
   End Sub
End Class


Меня уже бесит это всё!
1. При отладке, когда вся прога проставлена в брекпоинтах, Received = pop3Client.Receive(readBuffer) возбухает ошибку, типа хост закрыл соединение. Почему??? Главное, если брекпоинт с этой строки снять, то всё нормально :(
2. После отправки чего-либо серверу коммандой .Send, сервер перестаёт что-либо отправлять, т.е. всё та же злополучная строчка вовзращает 0... Почему?
3. И кстати, всё эта же строчка, только та, что в цикле, тормозит выполнение проги на 30-60 сек. Почему?

Заранее спасибо

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 07.08.06 12:55
Насколько я знаю, для TCP есть свой класс.. System.Net.Sockets.TcpClient попробуй поковырять его..
И судя по pop3Client ты пытаешься отправить почту.. если это так, то можно это сделать гораздо проще... буквально в несколько строчек..

Ответить

Номер ответа: 2
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #2 Добавлено: 07.08.06 16:23
А это так.. для информации...
Microsoft.VisualBasic.Strings.Chr(0) = vbNullChar
Microsoft.VisualBasic.ControlChars.NewLine = vbNewLine

Ответить

Номер ответа: 3
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #3 Добавлено: 07.08.06 19:16
А это так.. для информации...
да я знаю, просто я люблю полные пути указывать)) вот ещё вопрос: мона ли получить Chr(0) и Chr(10) & Chr(13), не обращаясь к классам в пространстве имен Microsoft.VisualBasic?

Насколько я знаю, для TCP есть свой класс.. System.Net.Sockets.TcpClient попробуй поковырять его..
ковырял, та же бяка :(

И судя по pop3Client ты пытаешься отправить почту..
получить))

если это так, то можно это сделать гораздо проще... буквально в несколько строчек..
де-то я читал, что вот таким методом в несколько строчек почту можно отправлять, тока если на компе юзера установлен какой-то сервис...

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 07.08.06 21:38
мона ли получить Chr(0) и Chr(10) & Chr(13), не обращаясь к классам в пространстве имен Microsoft.VisualBasic?

Char.ConvertFromUtf32(13)
де-то я читал, что вот таким методом в несколько строчек почту можно отправлять, тока если на компе юзера установлен какой-то сервис...

Отправляет на ура.. на счет получения не знаю.. не пробовал ..

Ответить

Номер ответа: 5
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #5 Добавлено: 07.08.06 22:04
на счет получения не знаю.. не пробовал ..
afaik, .NET предоставляет только возможность отправки писем... + значит, этот сервис у тебя установлен

Char.ConvertFromUtf32(13)
Это, в общем-то, я к чему?.. Статейку нашёл на codeproject.ru, что можно библу Microsoft.Visual.Basic.dll отключить (vb2005, хрень такая, в списке References её не показывает!), а значит, ничего юзать из этого простанства имен будет незя (да и, imho, не нада) :)

Ответить

Номер ответа: 6
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #6 Добавлено: 07.08.06 22:04
на счет получения не знаю.. не пробовал ..
afaik, .NET предоставляет только возможность отправки писем... + значит, этот сервис у тебя установлен

Char.ConvertFromUtf32(13)
Это, в общем-то, я к чему?.. Статейку нашёл на codeproject.ru, что можно библу Microsoft.Visual.Basic.dll отключить (vb2005, хрень такая, в списке References её не показывает!), а значит, ничего юзать из этого простанства имен будет незя (да и, imho, не нада) :)

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 07.08.06 22:43
И судя по pop3Client ты пытаешься отправить почту..


как так?? Почту уже по pop3, по 110-ому отправляют? :)

>Меня уже бесит это всё!

1) Видать при отладке сервер нехочет тебя ждать, и закрывает соединение...

2) из за 1

3) из за 2

Это предположение.

Ответить

Номер ответа: 8
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #8 Добавлено: 07.08.06 23:30
3) из за 2
неа, ибо тормоза независимы от того, стоит брекпоинт, или нет

1) Видать при отладке сервер нехочет тебя ждать, и закрывает соединение...
на vb6 ведь всё нормально, сервер меня ждёт...

Ответить

Номер ответа: 9
Автор ответа:
 Георгий



Вопросов: 6
Ответов: 5
 Web-сайт: tgvsoft.narod.ru
 Профиль | | #9
Добавлено: 08.08.06 11:29
отправить почту.. если это так, то можно это сделать гораздо проще... буквально в несколько строчек..
А скажите пожалуйста как именно это сделать ?

Ответить

Номер ответа: 10
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #10 Добавлено: 08.08.06 13:02
А скажите пожалуйста как именно это сделать ?
см. пространство имен System.Net.Mail

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 09.08.06 05:25
afaik, .NET предоставляет только возможность отправки писем... + значит, этот сервис у тебя установлен

Что за бред?
В .NET есть две группы классов для отправки почты, один - System.Web.Mail - отправляет через CDO, второй - System.Net.Mail - отправляет напрямую на SMTP-сервер.

Сответственно, второй можно использовать и никаких служб здесь нет!

Ответить

Номер ответа: 12
Автор ответа:
 student-uni



Вопросов: 122
Ответов: 257
 Профиль | | #12 Добавлено: 09.08.06 11:13
Можно черес localhost без всяких проблем,
ищи примеры, были.

Ответить

Номер ответа: 13
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #13 Добавлено: 09.08.06 13:04
один - System.Web.Mail - отправляет через CDO
значит я читал про этот.

2all: что можно сказать по сабжу?

Ответить

Номер ответа: 14
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #14
Добавлено: 09.08.06 19:31
Насчет Chr(0) и т.д. - смотрите ControlChars.
13&10 - это ControlChars.CRLF. Нулевой может быть тоже там есть.

Ответить

Номер ответа: 15
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #15 Добавлено: 09.08.06 20:22
Насчет Chr(0) и т.д. - смотрите ControlChars.
А ControlChars в Microsoft.VisualBasic, который юзать я не хочу :(

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам