adsense

2009年7月30日 星期四

[Linux][Fedora 11]Java的socket,使用writeObject/readObject


Server端:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;

/**
* Socket服务端程序
*
* @author zJun
*
*/
public class Server {

private ServerSocket server;

private Socket socket;

ObjectOutputStream objOut = null;//for object I/O

public Server() {
try {
// 在端口5000建立服务
server = new ServerSocket( 5000 );

System.out.println( " 服务创建. " );
System.out.println( " 等待客户端连接 " );

socket = server.accept();

System.out.println( " 客户端已连接.\n关闭! " );

objOut = new ObjectOutputStream(socket.getOutputStream());
objOut.writeObject("Hello");

objOut.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
System.exit( 1 );
}
}

public static void main(String args[]) {
Server game = new Server();
}

}
==================================================
client端:
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.io.*;

public class Client {

private Socket client;

ObjectInputStream objIn = null;//for Object I/O
String today = null;//for Object I/O

public Client(String server, int port) {
try {
// 连接服务
client = new Socket(InetAddress.getByName(server), port);
// 从服务器读取信息
objIn = new ObjectInputStream(client.getInputStream());
today = (String)objIn.readObject();
System.out.println(today);
objIn.close();
// 关闭连接
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
}
public static void main(String[] args) {
Client client = new Client( "140.113.216.171" , 5000 );
}
}

最後在server端java Server
會看到訊息
服务创建.
等待客户端连接
客户端已连接.
然後
在client端java Client
會看到訊息
Hello
Server端就會結束
並且印出訊息
关闭!

2009年7月27日 星期一

[Linux][Fedora 11]Java的socket

Simple Socket Example

原文網址:http://www.blogjava.net/zJun/archive/2007/07/24/76720.html

1.服务端
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
* Socket服务端程序
*
* @author zJun
*
*/
public class Server {

private ServerSocket server;

private DataOutputStream output;

private Socket socket;

public Server() {
try {
// 在端口5000建立服务
server = new ServerSocket( 5000 );
System.out.println( " 服务创建. " );
System.out.println( " 等待客户端连接 " );
socket = server.accept();
System.out.println( " 客户端已连接.\n关闭! " );
output = new DataOutputStream(socket.getOutputStream());
output.writeUTF( " 欢迎你.再见! " );
output.close();
server.close();
} catch (IOException e) {
e.printStackTrace();
System.exit( 1 );
}
}

public static void main(String args[]) {
Server game = new Server();
}

}

2.客户端
import java.io.DataInputStream;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
private Socket client;

private DataInputStream input;

public Client(String server, int port) {
try {
// 连接服务
if (server.equals( " localhost " )) {
client = new Socket(InetAddress.getLocalHost(), port);
} else {
client = new Socket(InetAddress.getByName(server), port);
}
// 从服务器读取信息
input = new DataInputStream(client.getInputStream());
String info = input.readUTF();
System.out.println(info);
// 关闭连接
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
Client client = new Client( " localhost " , 5000 );
}
}

在取代localhost為ip的時候發生了一件糗事
就放了之後一直出現java.net.UnknownHostException
結果發現去掉ip前後的空格
也是就是從" xxx.xxx.xxx.xxx "改成"xxx.xxx.xxx.xxx"就OK了...

2009年7月23日 星期四

[Linux][Debian]sftp

話說在用合作計畫的同學他的實驗室的主機
想要compile java程式
發覺沒有慣用的ftp軟體
最後找到了sftp
用法差不多

sftp username@ip

連進去之後就跟ftp一樣囉!讚~

2009年7月20日 星期一

[Linux][Fedora 11]Java中文無法顯示問題

話說好不容易把dedora的eclipse裝好
程式終於可以compile
卻發現~中文有亂碼~
就又要解決中文的問題
找了很多地方都找不到往路上指定的位置
後來使用了
#update-alternatives --config java
發現我自己抓來安裝的Java沒有成為系統默認
而系統從頭開始到現在都是用open JDK在compile...
所以...根據update-alternatives --config java這行指令找出系統默認的Java位置
我的是/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib
在這裡產生一個fonts的資料夾
在底下再生一個fallback資料夾
最後把系統的uming.ttc直接link到/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/fonts/fallback
也就是:
#ln -s /usr/share/fonts/cjkuni/uming.ttc .
(因為我的uming.tt在/usr/share/fonts/cjkuni/底下)

以上...感恩幫忙的米啦先生

2009年7月14日 星期二

[Linux][Fedora 11]MySQL建立帳號:adding user accounts by CREATE

話說在測試MySQL測試程式連線不了

結果是自己沒有設定帳號跟密碼的關係

MySQL的官方網站很聰明,就放了解決的方案

REATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' WITH GRANT OPTION;

原文網址:
http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

最後可以登入http://localhost/phpmyadmin的資料庫選項的mysql表格的user table來看看是否有修改成功

2009年7月8日 星期三

[Linux][Fedora 11]安裝MySQL-2

話說,上次自己編譯原始碼之後又少東少西的
於是,又重新去看了一次新增/移除軟體
赫然發現一個驚人發現
就是我之前只裝了MySQL的client
沒有裝Server啊啊啊啊啊啊啊
一定是沒睡飽= =
總之感恩來幫忙的同協
他也教我裝了phpmyadmin
說是可以用網頁管理database的
超感恩!
總之可以用了@@

2009年7月2日 星期四

[Windows][office 2007]建立目錄

office 2007目錄實在是一個好用東西
剛開始完全不懂,一整個不high
之前寫論文的時候最怕目錄...
弄個半天很浪費時間~
後來上網看了一下
摸了一下
發現可以從常用tab裡面的樣式裡面可以調整標題1~標題5
只要按一個按鈕就可以更改設定
其實還可以接受啦!

以上~