我是靠谱客的博主 超级火车,最近开发中收集的这篇文章主要介绍linux socket bind函数,linux下socket编程bind函数返回异常码98 Address already in use(2),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

int status = ::send ( m_sock, s.c_str(), s.size(), MSG_NOSIGNAL );

if ( status == -1 )

{

return false;

}

else

{

return true;

}

}

int Socket::recv ( string& s ) const

{

char buf [ MAXRECV + 1 ];

s = "";

memset ( buf, 0, MAXRECV + 1 );

int status = ::recv ( m_sock, buf, MAXRECV, 0 );

if ( status == -1 )

{

cout <

return 0;

}

else if ( status == 0 )

{

return 0;

}

else

{

s = buf;

return status;

}

}

bool Socket::connect ( const string host, const int port )

{

if ( ! is_valid() ) return false;

m_addr.sin_family = AF_INET;

m_addr.sin_port = htons ( port );

int status = inet_pton ( AF_INET, host.c_str(), &m_addr.sin_addr );

if ( errno == EAFNOSUPPORT ) return false;

status = ::connect ( m_sock, ( sockaddr * ) &m_addr, sizeof ( m_addr ) );

if ( status == 0 )

return true;

else

return false;

}

void Socket::set_non_blocking ( const bool b )

{

int opts;

opts = fcntl ( m_sock,

F_GETFL );

if ( opts 

{

return;

}

if ( b )

opts = ( opts | O_NONBLOCK );

else

opts = ( opts & ~O_NONBLOCK );

fcntl ( m_sock,

F_SETFL,opts );

}

ServerSocket.h

// Definition of the ServerSocket class

#ifndef ServerSocket_class

#define ServerSocket_class

#include "Socket.h"

class ServerSocket : private Socket

{

public:

ServerSocket ( int port );

ServerSocket (){};

virtual ~ServerSocket();

const ServerSocket& operator <

const ServerSocket& operator >> ( std::string& ) const;

void accept ( ServerSocket& );

};

#endif

ServerSocket.cpp

// Implementation of the ServerSocket class

#include "ServerSocket.h"

#include "SocketException.h"

ServerSocket::ServerSocket ( int port )

{

if ( ! Socket::create() )

{

throw SocketException ( "Could not create server socket." );

}

if ( ! Socket::bind ( port ) )

{

throw SocketException ( "Could not bind to port." );

}

if ( ! Socket::listen() )

{

throw SocketException ( "Could not listen to socket." );

}

}

ServerSocket::~ServerSocket()

{

}

const ServerSocket& ServerSocket::operator <

{

if ( ! Socket::send ( s ) )

{

throw SocketException ( "Could not write to socket." );

}

return *this;

}

const ServerSocket& ServerSocket::operator >> ( std::string& s ) const

最后

以上就是超级火车为你收集整理的linux socket bind函数,linux下socket编程bind函数返回异常码98 Address already in use(2)的全部内容,希望文章能够帮你解决linux socket bind函数,linux下socket编程bind函数返回异常码98 Address already in use(2)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部