Для тех, кто хочет сделать мир лучше.
-
Megalan
- Разработчик

- Сообщения: 335
- Зарегистрирован: 02.04.2007
- Благодарил (а): 1 раз
- Поблагодарили: 29 раз
-
Контактная информация:
#1
Сообщение
25.08.2008, 20:21
Имеется stream с данными вида
Код: Выделить всё
using (BinaryWriter bw = new BinaryWriter(stream, Encoding.UTF8))
{
bw.Write(protocolSignature);
bw.Write(reportsize);
bw.Write((byte)MessageType.CompundMessage);
bw.Write((UInt32)CompoundMessageFlags.None);
bw.Write(this.Text);
bw.Write(Application.ProductVersion);
bw.Write(".zip");
bw.Write("[email protected]");
byte[] reportData = new byte[1024];
......
bw.Write(reportData);
}
необходимо это каким то образом отправить через сокеты, есть предложения?
ps в сокетах я почти не разбираюсь
-
andreil
- Разработчик

- Сообщения: 781
- Зарегистрирован: 14.08.2006
- Откуда: Светлогорск, Беларусь
- Поблагодарили: 2 раза
-
Контактная информация:
#2
Сообщение
29.08.2008, 18:14
Megalan писал(а):Имеется stream с данными вида
Код: Выделить всё
using (BinaryWriter bw = new BinaryWriter(stream, Encoding.UTF8))
{
bw.Write(protocolSignature);
bw.Write(reportsize);
bw.Write((byte)MessageType.CompundMessage);
bw.Write((UInt32)CompoundMessageFlags.None);
bw.Write(this.Text);
bw.Write(Application.ProductVersion);
bw.Write(".zip");
bw.Write("[email protected]");
byte[] reportData = new byte[1024];
......
bw.Write(reportData);
}
необходимо это каким то образом отправить через сокеты, есть предложения?
ps в сокетах я почти не разбираюсь
Сам я тоже не сильно разбираюсь, но:
Код: Выделить всё
var Sock: TSocket;
D: TWDAData;
begin
d:=WDAStartup(..);
Sock:=Connect(...);
if send(Sock, '.zip', length('.zip'))-SOCKET_ERROR then
result:=false;
//и тд.
end;
Код конечно на Дельфи, да и не помню я одну переменную (TWDAData - примерно так в оригинале и звучет).
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).
-
Dark Daskin
- Сержант

- Сообщения: 71
- Зарегистрирован: 07.12.2007
- Откуда: Санкт-Петербург
-
Контактная информация:
#3
Сообщение
02.09.2008, 21:20
В общем случае так:
Код: Выделить всё
System.Net.Sockets.Socket socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp);
socket.Connect("example.com", 80);
System.Net.Sockets.NetworkStream stream = new System.Net.Sockets.NetworkStream(socket);
//Твой код здесь
socket.Close();
╔════════════════════════════╗
║
▼ Скачать все GCF:
BitTorrent |
HTTP ▼║
╚════════════════════════════╝
H4sICCl+V0gAAAALMOEyM1YwMeL6wcfwgIFFrlZBgJGBQV7RUXFO4oU+lQWOSkETDTpVFtQqX/po0y+v4Kwk1GjUyaLorNiTcKcPqJ4BAhhx0uxQmgNCW5yzPPOCmdNQRdOlyYOh01PlpUufH3N/paqmyyRPlk5Hi2cWfX7OnYYKINUODIwKMHMI0IxqLDJPXU4xMirKK0110WJkfK6yaGrOE0ZGTSAdCuSry8s8dnkFVM/C0MjAAKbbcJrnAKENFRgZJNUlLxgBaVVNlQksQFox02YOB4i/UmGSMEjefsYcZSDNINDAwKAA1w8AJT7WI1kBAAA=

-
Ambient
- Нович0к

- Сообщения: 7
- Зарегистрирован: 17.04.2008
#4
Сообщение
20.10.2008, 01:48
Dark Daskin писал(а):В общем случае так:
Угу. По сути дела, BinaryWriter нужен на входе объект любого класса, унаследованного от Stream. Хотя я бы вместо Socket использовал TcpClient.