linuxÏÂsocket±à³Ì×ÜÊÇbind´íÎó¡£Çó½Ì¡«¡«
ͬÑù´úÂëÔÚwindowsÏÂÔËÐгɹ¦¡£
Í·Îļþ£º
C/C++ code:
#ifndef SENDER_H
#define SENDER_H
#include <wx/thread.h>
#include "package.h"
#include <string>
#ifdef WIN32
#include <winsock2.h>
#else
#include <arpa/inet.h>
#include <errno.h>
#include <fcntl.h>
#include <netinet/in.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#endif
#ifdef WIN32
typedef int socklen_t;
typedef int ssize_t;
#endif
#ifdef __LINUX__
typedef int SOCKET;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
#define FALSE 0
#define SOCKET_ERROR (-1)
#define INVALID_SOCKET (-1)
#define closesocket(_x) close(_x)
#endif
using namespace std;
class DMS_serverFrame;
class reader;
class sender : public wxThread
{
public:
sender(DMS_serverFrame* frame);
virtual ~sender();
virtual wxThread::ExitCode Entry();
protected:
void sendMsgEvent(string msg);
private:
void sendData(SOCKET sock);
void changeVolume(short *buf);
void sendEmptyPackage(SOCKET sock);
void sendDataPackage(SOCKET sock, package pack,int i);
int send_all(SOCKET sock, char* buf, int nByte);
void recv_all(SOCKET sock, char* buf,int nByte);
DMS_serverFrame *m_pframe;
reader * prd;
SOCKET slist
Ïà¹ØÎÊ´ð£º
ÎÒĿǰÔÚ±¾µØµÄlinuxÉÏдÁËÒ»¸öswingµÄ½çÃæ£¬Ïëͨ¹ýÕâ¸ö½çÃæÀ´¿ØÖÆÆäËüµçÄÔµÄlinuxÖØÆô¡£
ÎÒÖªµÀÓÃRuntime.getRuntime().exec("shutdown -r");¿ÉÒÔ¿ØÖƱ¾»úLinuxÖØÆô£¬µ«ÊÇÔõô¿ØÖÆÔ¶³ÌµÄlinuxÖØÆôÄØ£¿ ......
¸÷λ´óϺ£¬ÎÒÕýÔÚѧϰLinux£¬¿ÉÊÇLinuxͼÐνçÃæºÍÃüÁîÐÐÖ®¼äÇл»Óöµ½À§ÄÑ£¬ÔÚÃüÁîÐÐÏÂÊäÈëstartx£¬²»ÊǽøÈëͼÐνçÃæ
¶øÊdzöÏÖ
ÇëÎʸ÷룬ÕâÊÇΪʲô£¿ ¶øÇÒ°´Ctrl+Alt+F7£¬Ò²²»ÄÜÃüÁîÐнøÈëͼÐνçÃæ¡£
¼±¼±¼±
......
´úÂëÌ«¶à£¬²»ºÃÌù£¬
´óÖÂÉæ¼°µ½ÕâЩ£º
char *arg[MAXSIZE];
char *buffer[MAXSIZE];
.........
arg[k]=(char*)malloc(sizeof(char)*j);
strcpy(arg[k],buffer);
.................[color=#993300][/color]
µ ......
ÎÒÐèÒªÓõ½ÔÚlinuxÏÂÃæ¶ÁдÅäÖÃÎļþµÄ¿â£¬µ½ÍøÉÏÏÂÁËconfiglib¿â£¬½á¹û±àÒë¿ÉÒÔͨ¹ý£¬Á´½Ó¾ÍÓÐÎÊÌâÁË£¬ÀÏÊdzöÏÖundefined reference to µÄÎÊÌ⣬²éÕâ¸ö¿âµÄʹÓ÷½·¨£¬¶¼Ã»ÓоßÌåµÄ½éÉÜ£¬ÓÐÄÄλÒÔǰÓùýÕâ¸ö¿â»òÕßÀàË ......