![]()  | 
		
			
  | 	
	
	
		
		|||||||
| 論壇說明 | 
| 
				歡迎您來到『史萊姆論壇』  ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』  | 
		
| 
         | 
    主題工具 | 顯示模式 | 
| 
			
			 | 
		#1 | 
| 
			
			 長老會員 
			![]() ![]()  | 
	
	
	
		
		
			
			 表單累容如下: 
		
		
		
	語法: 
	object Form1: TForm1
  Left = 267
  Top = 273
  Width = 226
  Height = 237
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object SpeedButton1: TSpeedButton
    Left = 8
    Top = 88
    Width = 81
    Height = 22
    Caption = '傳送'
    Flat = True
    OnClick = SpeedButton1Click
  end
  object SpeedButton2: TSpeedButton
    Left = 8
    Top = 120
    Width = 81
    Height = 25
    Caption = '放棄'
    Flat = True
    OnClick = SpeedButton2Click
  end
  object SpeedButton3: TSpeedButton
    Left = 8
    Top = 168
    Width = 81
    Height = 25
    Caption = '離開'
    Flat = True
    OnClick = SpeedButton3Click
  end
  object ToolBar1: TToolBar
    Left = 0
    Top = 0
    Width = 218
    Height = 29
    ButtonHeight = 21
    ButtonWidth = 31
    Caption = 'ToolBar1'
    Flat = True
    ShowCaptions = True
    TabOrder = 0
    object ToolButton1: TToolButton
      Left = 0
      Top = 0
      Caption = '連線'
      DropdownMenu = PopupMenu1
      ImageIndex = 0
    end
  end
  object Edit1: TEdit
    Left = 8
    Top = 40
    Width = 81
    Height = 40
    Font.Charset = CHINESEBIG5_CHARSET
    Font.Color = clWindowText
    Font.Height = -32
    Font.Name = 'Fixedsys'
    Font.Style = []
    MaxLength = 4
    ParentFont = False
    TabOrder = 1
  end
  object Memo1: TMemo
    Left = 96
    Top = 40
    Width = 113
    Height = 153
    TabOrder = 2
  end
  object ServerSocket1: TServerSocket
    Active = False
    Port = 1234
    ServerType = stNonBlocking
    OnClientConnect = ServerSocket1ClientConnect
    OnClientDisconnect = ServerSocket1ClientDisconnect
    OnClientRead = ServerSocket1ClientRead
    Left = 40
    Top = 104
  end
  object ClientSocket1: TClientSocket
    Active = False
    ClientType = ctNonBlocking
    Port = 1234
    OnConnect = ClientSocket1Connect
    OnDisconnect = ClientSocket1Disconnect
    OnRead = ClientSocket1Read
    Left = 72
    Top = 104
  end
  object PopupMenu1: TPopupMenu
    Left = 104
    Top = 104
    object N1: TMenuItem
      Caption = '等待連線'
      OnClick = N1Click
    end
    object N2: TMenuItem
      Caption = '加入連線'
      OnClick = N2Click
    end
  end
end
TServerSocket是屬於主機端的物件,也就是他是等待連結 TClientSocket則是屬於用戶端的物件,就是主動連結主機 接著有另外一項重要屬性就是Port,據書面資料說Port值可以任意,但必須大於1024,而兩台相連的電腦,Port值一定要一樣 使用時,其中一端必須當作主機(就是使用TServerSocket),等待TClientSocket的訊息,另一台電腦則使用TClientSocket發出訊息給主機 首先讓使用者選擇是要當主機(使用TServerSocket等待他人加入)呢?還是要加入其中一台主機(使用TClientSocket) 至於連接時您可以選擇使用IP(Address)或是輸入對方電腦名稱(Host) 本程式是兩個都放入,然後由使用者選擇要當Server會Client 若是當Server(選擇等待連結)則直接將ServerSocket1的Active屬性設為true,就可以等候Client的訊息了 語法: 
	void __fastcall TForm1::N1Click(TObject *Sender)
{
  ServerSocket1->Active=true;  
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::N2Click(TObject *Sender)
{
  String sh;
  if(InputQuery("連線","輸入 電腦名稱: ",sh));
    if(sh.Length()>0)
    {
      ClientSocket1->Host=sh;
      ClientSocket1->Active=true;
    }
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"上來!");
  ToolButton1->Enabled=false;
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add("連到"+Socket->RemoteHost);
  ToolButton1->Enabled=false;
}
//---------------------------------------------------------------------------
在TServerSocket是以ServerSocket1->Socket->Connections[0]->SendText(Edit1->Text)方法傳送的 而TClientSocket則以ClientSocket1->Socket->SendText(Edit1->Text)傳送 所以傳送按鈕(SpeedButton1)的OnClick事件是: 語法: 
	void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
  if(ServerSocket1->Active)
    ServerSocket1->Socket->Connections[0]->SendText(Edit1->Text);
  else
    ClientSocket1->Socket->SendText(Edit1->Text);
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
  if(ServerSocket1->Active)
    ServerSocket1->Active=false;
  else
    ClientSocket1->Active=false;
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
TServerSocket的事件是OnClientDisconnect 語法: 
	void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"離線");
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"離線");
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
語法: 
	void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
  ServerSocket1->Close();
  ClientSocket1->Close();
  Close();
}
//---------------------------------------------------------------------------
<敬請指教>  | 
| 
		
		
		
				__________________ 地獄變現記 [人身得來不易,願大家能尊重生命--勿傷胎命][好淫者請好自為之吧--割鳥] 南泉禪師道: 「道不屬知,不屬不知。知是妄覺,不知是無記。若真達不疑之道,猶如太虛,廓然蕩豁,豈可強是非邪?」 德山宣鑒禪師: 「如果明白無事,則勿妄求,妄求而得,亦非得也。汝但無事於心,無心於事,則虛而靈,空而妙。若毛端許,言之本末者,皆為自欺。何故?毫氂繫念,三塗業因。瞥爾情生,萬劫羈鎖。聖名凡號,盡是虛聲。殊相劣形,皆是幻色。汝欲求之,得無累乎?」  | 
|
| 
		 | 
	
	
	
		
	
	 
		送花文章: 5469,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
			
					
						
					
			
		
		
		
		
		
			
				
			
		
		
		
	 |