ak_yilmaz
24/05/2007, 11:04
Öncelikle herkese merhaba,
Aranıza yeni katıldım ve hemen ilk sorumu sormak istiyorum. Ben Linux de bir soket uygulaması yapmak istiyorum. Elimde örnek bir kod var kodumun her fonksiyonu çalışıyor biri hariç bu fonk. u kullandığımda Linux pipe broken hatası veriyor.
tanımladığım soket stream sokettir.hatayı veren fonk. nu yazıyorum..
bool Socket::send2 (char *buff, long buff_uzunluk)
{
unsigned char buffer[buff_uzunluk];
const char* bb;
bb=buff;
for(long i=0;i<buff_uzunluk;i++)
{
buffer[i]=buff[i];
printf ("trans %d %x\n",i,bb[i]);
}
printf ("uzunluk %d \n",buff_uzunluk);
int status = ::send(m_sock, bb, buff_uzunluk, MSG_NOSIGNAL);
perror("Error bura da olusuyor");//pipe broken burada oluyor.
if (status == -1)
{
return false;
}
else
{
return true;
}
}
bununla beraber buna benzeyen bir kod parçam daha var bu hata vermiyor ama malesef bu da işimi görmüyor.
bool Socket::send ( const std::string s ) const
{
const char* ptr;
ptr=s.c_str();
for(long i=0; i<s.size();i++)
{
printf ("trans %x\n",ptr[i]);
}
int status = ::send ( m_sock, ptr, s.size(), MSG_NOSIGNAL );
if ( status == -1 )
{
return false;
}
else
{
return true;
}
}
bu iki fonk arasındaki fark aldığı argumanlardır. send fonk hata vermiyor ama bu fonk. ile 0x00 datasını gönderemiyorum. 0x00 ı da gönderebilmek için send2 fonk. nunu yazdım ama bu da Broken pipe hatası veriyor.
Böylelikle bağlantı kopuyor ve iletişim kesiliyor.
İlginize teşekkürler...
Aranıza yeni katıldım ve hemen ilk sorumu sormak istiyorum. Ben Linux de bir soket uygulaması yapmak istiyorum. Elimde örnek bir kod var kodumun her fonksiyonu çalışıyor biri hariç bu fonk. u kullandığımda Linux pipe broken hatası veriyor.
tanımladığım soket stream sokettir.hatayı veren fonk. nu yazıyorum..
bool Socket::send2 (char *buff, long buff_uzunluk)
{
unsigned char buffer[buff_uzunluk];
const char* bb;
bb=buff;
for(long i=0;i<buff_uzunluk;i++)
{
buffer[i]=buff[i];
printf ("trans %d %x\n",i,bb[i]);
}
printf ("uzunluk %d \n",buff_uzunluk);
int status = ::send(m_sock, bb, buff_uzunluk, MSG_NOSIGNAL);
perror("Error bura da olusuyor");//pipe broken burada oluyor.
if (status == -1)
{
return false;
}
else
{
return true;
}
}
bununla beraber buna benzeyen bir kod parçam daha var bu hata vermiyor ama malesef bu da işimi görmüyor.
bool Socket::send ( const std::string s ) const
{
const char* ptr;
ptr=s.c_str();
for(long i=0; i<s.size();i++)
{
printf ("trans %x\n",ptr[i]);
}
int status = ::send ( m_sock, ptr, s.size(), MSG_NOSIGNAL );
if ( status == -1 )
{
return false;
}
else
{
return true;
}
}
bu iki fonk arasındaki fark aldığı argumanlardır. send fonk hata vermiyor ama bu fonk. ile 0x00 datasını gönderemiyorum. 0x00 ı da gönderebilmek için send2 fonk. nunu yazdım ama bu da Broken pipe hatası veriyor.
Böylelikle bağlantı kopuyor ve iletişim kesiliyor.
İlginize teşekkürler...