⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.h

📁 swain-0.5.2.zip的源代码,比较好用,希望大家喜欢.
💻 H
字号:
/*
This file is part of SWAIN (http://sourceforge.net/projects/swain).
Copyright (C) 2006  Daniel Lindstr鰉 and Daniel Nilsson

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA  02110-1301, USA.
*/
#pragma once

#include <Winsock2.h>

enum socket_state {
	STATE_NEW,
	STATE_CONNECTED,
	STATE_LISTEN,
	STATE_CLOSED
};

class Socket {
	friend class Select;
private:
	static int sock_count;

	static void initWinSock();
	static void exitWinSock();

	SOCKET sock;
	socket_state state;
	struct sockaddr_in addr;

	void setSocket(SOCKET s);
	bool createSocket(void);
public:
	Socket(void);
	~Socket(void);

	bool connectTo(const char *host, short port);
	bool startListen(short port);
	Socket *acceptConnection(void);
	bool close(void);

	int sendData(void *buf, int len);
	int receiveData(void *buf, int len);

	bool sendByte(char b);
	bool sendShort(short s);
	bool sendInt(int i);
	bool sendFloat(float f);
	bool sendString(char *s);
	bool sendString(WCHAR *s);

	bool receiveByte(char *);
	bool receiveShort(short *);
	bool receiveInt(int *);
	bool receiveFloat(float *);
	// Returns length of string, but write max bufSize chars to buf.
	int receiveString(char *buf, int bufSize);
	// Returns length of string, but writes max bufSize wchars to buf.
	int receiveString(WCHAR *buf, int bufSize);

	int discardData(int len);
	int getInetAddr();
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -