Aracılığıyla paylaş


CAsyncSocket::Send

Bağlı bir yuva üzerinde veri göndermek için bu üye işlevini çağırın.

virtual int Send(
   const void* lpBuf,
   int nBufLen,
   int nFlags = 0 
);

Parametreler

  • lpBuf
    Aktarılacak verileri içeren bir arabellek.

  • nBufLen
    Veri uzunluğu lpBuf bayt.

  • nFlags
    Çağrının yapıldığı biçimini belirtir.Bu işlevin semantiği soket seçenekleri tarafından belirlenir ve nFlags parametresi.Bu sonuncusu aşağıdaki değerlerden herhangi birine sahip C++ birleştirilerek oluşturulur OR işleci:

    • msg_dontroute veri yönlendirme tabi olmamalıdır belirtir.Windows Sockets tedarikçi bu bayrak yoksaymayı seçebilirsiniz.

    • msg_oob bant içi veri gönderme (sock_stream sadece).

Dönüş Değeri

Herhangi bir hata oluşursa, gönderme toplam gönderilen karakter sayısını verir.(Bu belirtilen sayıdan daha az olabileceğine dikkat edin nBufLen.) Aksi halde, değeri socket_error iade edilir ve belirli bir hata kodu çağırarak alınabilir GetLastError.Aşağıdaki hatalar bu üye işlev için geçerlidir:

  • WSANOTINITIALISED başarılı bir AfxSocketInit Bu API kullanmadan önce gerçekleştirilmelidir.

  • wsaenetdown Windows Sockets başlatılmasının algılanan ağ alt sistemi başarısız oldu.

  • wsaeacces İstenen adres bir yayın adresi olsa da, uygun bayrağı ayarlı değil.

  • WSAEINPROGRESS engelleyen bir Windows yuva işlemi devam ediyor.

  • wsaefaultlpBuf bağımsız değişken geçerli bir kullanıcı adres alanı parçası değil.

  • wsaenetreset Windows Sockets uygulaması bebeği bıraktığı çünkü bağlantıyı sıfırlamanız gerekir.

  • WSAENOBUFSWindows Sockets uygulaması arabellek kilitlenme raporları.

  • wsaenotconn Yuva bağlı değil.

  • wsaenotsock bir soket tanımlayıcısı değil.

  • WSAEOPNOTSUPP   msg_oob belirtildi, ancak yuva türü değil sock_stream.

  • wsaeshutdown yuva; aşağı Kapat Çağrı yapılamaz gönderme sonra bir yuvada ShutDown ile çağrılan nHow 1 veya 2'ye ayarlayın.

  • wsaewouldblock yuva işaretlenmiş olarak yapmayan ve istenen işlem engellenebilir.

  • WSAEMSGSIZE socket türüdür sock_dgram, ve veri birimini Windows Sockets uygulaması tarafından desteklenen en büyük değerinden daha büyük.

  • WSAEINVAL yuva ile bağlanmış değil bağlamak.

  • wsaeconnaborted sanal devrenin zaman aşımı veya diğer hata iptal edildi.

  • wsaeconnreset sanal devrenin uzak uç tarafından sıfırlandı.

Notlar

Gönder bağlı akış veya datagramı yuva üzerinde giden veri yazmak için kullanılır.Datagram yuva için temel ağların en büyük IP paket boyutu tarafından belirtilmiş olan aşamaz olunması gereken iMaxUdpDg öğesinde wsadata tarafından döndürülen yapı AfxSocketInit.Verileri temel protokol hata atomically geçmesine çok uzunsa WSAEMSGSIZE aracılığıyla döndürülen GetLastError, ve hiçbir veri iletilir.

Bir veri birimi için yuva başarıyla tamamlandığını unutmayın bir gönderme verileri başarıyla teslim edildiğini göstermez.

Üzerinde CAsyncSocket türündeki nesneler sock_stream, yazılan bayt sayısı 1 ile yerel ve yabancı ana arabellek kullanılabilirliğine bağlı olarak istenen Uzunluk'a arasında olabilir.

Örnek

Örnek için bkz: CAsyncSocket::OnSend.

Gereksinimler

Başlık: afxsock.h

Ayrıca bkz.

Başvuru

CAsyncSocket sınıfı

Hiyerarşi grafik

CAsyncSocket::Create

CAsyncSocket::Receive

CAsyncSocket::ReceiveFrom

CAsyncSocket::SendTo