![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрытие и открытие портов [D6, Win2k]
Lightness © (2003-12-24 14:04:00)
Объясните как пользоватся: Winsock.connect(PortNumber, A, B);
С параметрами A и B немогу разобраться.
И почему у меня порт не закрывается!?
Winsock.closesocket(PortNumber);
Присылайте на мыло ответы.
Заранее благодарен!
Digitman (2003-12-25 16:56:00) [1]
> Lightness
все примеры (не самые плохие) - в штатном модуле scktcomp.pas
Polevi (2003-12-25 16:13:00) [2]
var
wsaData:TWSAData;
FAddr: TSockAddrIn;
FSocket:TSocket;
FBlocking: DWORD;
begin
{ TODO -oUser -cConsole Main : Insert code here }
WSAStartup($0202,wsaData);
FSocket:=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if FSocket=INVALID_SOCKET then RaiseLastOSError;
FAddr.sin_family:=AF_INET;
FAddr.sin_addr.s_addr :=inet_addr(PChar("127.0.0.1"));
FAddr.sin_port := htons(6666);
FBlocking:=0;
ioctlsocket(FSocket, FIONBIO,FBlocking);
if connect(FSocket, @FAddr, SizeOf(FAddr))=SOCKET_ERROR then
RaiseLastOSError;
Lightness (2003-12-25 14:58:00) [3]
Прости за мою не просвещеность, но не мог бы ты на писть мне пример?
Digitman (2003-12-24 15:31:00) [4]
> Winsock.connect(PortNumber, A, B);
где ты выискал такую декларацию ?
вот правильная декларация в winsock.pas :
function connect(s: TSocket; var name: TSockAddr; namelen: Integer): Integer; stdcall;
вот декларация и описание параметров соответствии с MSDN :
The Windows Sockets connect function establishes a connection to a peer.
int connect (
SOCKET s,
const struct sockaddr FAR* name,
int namelen
);
Parameters
s
[in] A descriptor identifying an unconnected socket.
name
[in] The name of the peer to which the socket is to be connected.
namelen
[in] The length of the name.
где ты видишь, что 1-й параметр - это "номер порта" ?
он д.б. прописан в одном из полей 2-го параметра, кот. предст.собой адрес заранее подготовленной структуры TSockAddr
3-й же параметр - полный размер этой структуры в байтах