2012年5月10日 星期四



SimpleServer:

import java.net.*;
import java.io.*;
public class SimpleServer {
   public final static int myPort=20; // 使用port 20
   public static void main(String args[]) {
      //ServerSocket ss; 
      //Socket sc;
      PrintWriter op;
      try {
      ServerSocket ss = new ServerSocket(myPort);
       while (true) {
      Socket sc = ss.accept(); // 等待建立連線

op = new PrintWriter(sc.getOutputStream());
 op.println("Hi! There!");
  op.flush(); // 很重要, 不要漏掉

      sc.close();
      //break; 
       }
      }
       catch (IOException e) {

  System.err.println(e);
  }

      System.out.println("end");




/*
 try {
    ss = new ServerSocket(myPort);
    try {
      while (true) {
  sc = ss.accept(); // 等待建立連線
  op = new PrintWriter(sc.getOutputStream());
  op.println("Hi! There!");
  op.flush(); // 很重要, 不要漏掉
  sc.close();
  }
    }
    catch (IOException e) {
  ss.close();
  System.err.println(e);
  }
 }
 catch (IOException e) {
  System.err.println(e);
  }


*/


}


}

2012年4月26日 星期四

簡單執行JAVA
javac 檔名.java    編譯
java 檔名    執行

程式碼:

public class Hello {
    public static int gvar;
    public static void say(String s) {
        int x = 10;
        System.out.print(s+x);
    }
    public static void main(String[] argv) {
        float y = 0;
        say("Hello, world\n");
    }
}




2012年4月5日 星期四

CLIENT間透過SERVER互傳 訊息


server端有三個Winsock
一個用來監聽
兩個分別配給client




server端程式碼重點部分

 Private Sub Winsock1_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  Dim strData As String
  Winsock1(1).GetData strData, vbString
  txtReceived.Text = strData
  Winsock1(2).GetData strData, vbString
  Text1.Text = strData
  
  If Index = 1 Then
  Winsock1(2).SendData txtReceived.Text
  Else
  Winsock1(1).SendData Text1.Text
  
End If
End Sub


Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
  Dim i As Long
  For i = 1 To 2
If Winsock1(i).State = sckClosed Then
Winsock1(i).Accept requestID
List1.AddItem "Local Port=" + Str(Winsock1(i).LocalPort) + "RemotePort = " + Str(Winsock1(i).RemotePort)
Exit For
End If
Next
  'Winsock1.Close
  'Winsock1.Accept requestID  '改成接受
  cmdSend.Enabled = True
End Sub


CLINET端程式碼

Private Sub cmdConnect_Click()
  Winsock1.LocalPort = 0   '以便自動產生Local Port
  Winsock1.Connect "125.230.89.95"  '設定改成您 Server 電腦的IP 號碼
End Sub

Private Sub cmdExit_Click()
  Winsock1.SendData "close"
  DoEvents
  Winsock1.Close
  Winsock1.LocalPort = 0
End Sub

Private Sub cmdSend_Click()
  Winsock1.SendData txtOutput.Text
  DoEvents
End Sub

Private Sub Form_Load()
  Winsock1.RemotePort = 7777  '設定與Server端做Listen的Port相同
End Sub

Private Sub Form_Unload(Cancel As Integer)
If Winsock1.State <> sckClosed Then
   cmdExit_Click
End If
End Sub

Private Sub Winsock1_Connect()
If Winsock1.State = sckConnected Then
   lstInput.AddItem "Connected! LocalPort =" & Winsock1.LocalPort _
                    & " RemptePort = " & Winsock1.RemotePort
End If

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim mydata As String
  Winsock1.GetData mydata, vbString
  lstInput.AddItem mydata
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
  lstInput.AddItem Description
End Sub


如下圖所示,下面框框的內容"Text11"將透過server傳送至另一個client,
上面框框的內容"Text1554"就是從另一個client接收到的訊息

2012年3月29日 星期四

資料出處程式設計工藝大師 

VB的CLEINT連接JAVA的SERVER
'
SERVER.JAVA


State 屬性的設置值是:



常數                                     值                描述

sckClosed                           0                 關閉
sckOpen                              1                 打開
sckListening                        2                 偵聽
sckConnectionPending      3                 連接
sckResolvingHost               4                 識別主機
sckHostResolved                5                 已識別主機
sckConnecting                    6                  正在連接
sckConnected                     7                  已連接
sckClosing                           8                 同級人員正在關閉連接
sckError                               9                  錯誤










2012年3月15日 星期四

資料出處程式設計工藝大師 


TCP 提供一個可的資料流傳送服務,UDP 則提供一個非可靠的非連線型的資料流傳送服務。
TCP
優點:傳送可靠
缺點:速度比較慢
UDP
優點:傳輸量大且迅速
缺點:不可靠,程式需自行提供可靠的機制 

2012年3月1日 星期四



物件Object
類別Class
屬性Property
事件Event
行為behavior
方法method

實際做出例子:


import javax.swing.*;
import java.awt.event.*;


public class Exe extends JFrame 
implements ActionListener {

int SizeW = 500;
int SizeH = 500;

 public static void main(String[] args) {
 Exe test = new Exe();
 }

 
 public Exe() {
   setTitle("9730029");    
 
  
   JButton mybutton = new JButton("Click");
   JButton mybutton1 = new JButton("c");
   JRadioButton mybutton2  = new JRadioButton("Yes");
   JCheckBox mybutton3  = new JCheckBox("No");
   
   
   mybutton.setSize(100,100);
  
   mybutton.addActionListener(this);
  
   /**mybutton.setBounds(1, 1, 1, 1);
   mybutton1.setBounds(800, 1, 800, 1);
   mybutton2.setBounds(1, 800, 1, 800);
   mybutton3.setBounds(800, 800, 800, 800);**/
   getContentPane().add(mybutton3);
   getContentPane().add(mybutton);
   getContentPane().add(mybutton1);
   getContentPane().add(mybutton2);
   //getContentPane().add(mybutton3);
   
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setSize(SizeW,SizeH);
   setVisible(true);
 }

 public void actionPerformed(ActionEvent e) {
 SizeW = SizeW * 1;
 SizeH = SizeH * 2;  
 setSize(SizeW,SizeH);
 }

}