Fungsi WSASendDisconnect (winsock2.h)

Fungsi WSASendDisconnect memulai penghentian koneksi untuk soket dan mengirim data pemutusan sambungan.

Sintaks

int WSAAPI WSASendDisconnect(
  [in] SOCKET   s,
  [in] LPWSABUF lpOutboundDisconnectData
);

Parameter

[in] s

Deskriptor mengidentifikasi soket.

[in] lpOutboundDisconnectData

Penunjuk ke data pemutusan sambungan keluar.

Mengembalikan nilai

Jika tidak ada kesalahan yang terjadi, WSASendDisconnect mengembalikan nol. Jika tidak, nilai SOCKET_ERROR dikembalikan, dan kode kesalahan tertentu dapat diambil dengan memanggil WSAGetLastError.

Kode kesalahan Makna
WSANOTINITIALISED
Panggilan WSAStartup yang berhasil harus terjadi sebelum menggunakan fungsi ini.
WSAENETDOWN
Subsistem jaringan gagal.
WSAENOPROTOOPT
Parameter lpOutboundDisconnectData bukan NULL, dan data pemutusan sambungan tidak didukung oleh penyedia layanan.
WSAEINPROGRESS
Pemblokiran panggilan Windows Sockets 1.1 sedang berlangsung, atau penyedia layanan masih memproses fungsi panggilan balik.
WSAENOTCONN
Soket tidak tersambung (hanya soket berorientasi koneksi).
WSAENOTSOCK
Deskriptor bukan soket.
WSAEFAULT
Parameter lpOutboundDisconnectData tidak sepenuhnya terkandung dalam bagian ruang alamat pengguna yang valid.

Keterangan

Fungsi WSASendDisconnect digunakan pada soket berorientasi koneksi untuk menonaktifkan transmisi dan untuk memulai penghentian koneksi bersama dengan transmisi data pemutusan, jika ada. Ini setara dengan pematian (SD_SEND), kecuali bahwa WSASendDisconnect juga memungkinkan pengiriman data pemutusan sambungan (dalam protokol yang mendukungnya).

Setelah fungsi ini berhasil diterbitkan, pengiriman berikutnya tidak diizinkan.

Parameter lpOutboundDisconnectData , jika bukan NULL, menunjuk ke buffer yang berisi data pemutusan keluar yang akan dikirim ke pihak jarak jauh untuk diambil dengan menggunakan WSARecvDisconnect.

Catatan Implementasi asli TCP/IP pada Windows tidak mendukung pemutusan sambungan data. Data terputus hanya didukung dengan penyedia Windows Sockets yang memiliki bendera XP1_DISCONNECT_DATA dalam struktur WSAPROTOCOL_INFO mereka. Gunakan fungsi WSAEnumProtocols untuk mendapatkan struktur WSAPROTOCOL_INFO untuk semua penyedia yang diinstal.
 
Fungsi WSASendDisconnect tidak menutup soket, dan sumber daya yang melekat pada soket tidak akan dikosongkan sampai closesocket dipanggil.

Fungsi WSASendDisconnect tidak memblokir terlepas dari pengaturan SO_LINGER pada soket.

Aplikasi tidak boleh mengandalkan untuk dapat menggunakan kembali soket setelah memanggil WSASendDisconnect. Secara khusus, penyedia Windows Sockets tidak diperlukan untuk mendukung penggunaan sambungkan/WSAConnect pada soket seperti itu.

Catatan Saat mengeluarkan panggilan Winsock pemblokiran seperti WSASendDisconnect, Winsock mungkin perlu menunggu peristiwa jaringan sebelum panggilan dapat selesai. Winsock melakukan penantian yang dapat diperingatkan dalam situasi ini, yang dapat terganggu oleh panggilan prosedur asinkron (APC) yang dijadwalkan pada utas yang sama. Mengeluarkan panggilan Winsock pemblokiran lain di dalam APC yang mengganggu panggilan Winsock pemblokiran yang sedang berlangsung pada utas yang sama akan menyebabkan perilaku yang tidak terdefinisi, dan tidak boleh dicoba oleh klien Winsock.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winsock2.h
Pustaka Ws2_32.lib
DLL Ws2_32.dll

Lihat juga

Fungsi Winsock

Referensi Winsock

sambungkan

soket