Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
72Activity
0 of .
Results for:
No results containing your search query
P. 1
Lap trinh Socket voi Java3

Lap trinh Socket voi Java3

Ratings:

4.5

(2)
|Views: 1,941|Likes:
Published by HocLieuMo

More info:

Published by: HocLieuMo on Dec 06, 2007
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/28/2013

pdf

text

original

 
12/6/20071
1
Network Programming
Lập trình Socket với Java
2
Network Programming
Nội dung bài học
Lớp InetAddress
Truyền tin với giao thức TCP
TCP Sockets
Ví dụ về máy chủ/khách TCP
Truyền tin với giao thức UDP
Datagram Sockets
Ví dụ về máy chủ/khách UDP
3
Network Programming
Các classes trong gói java.net
Gói java.net chứa các classes cho phép thực hiện lập trìnhmạng
ContentHandler 
DatagramPacket
DatagramSocket
InetAddress
MulticastSocket
ServerSocket
Socket
SocketImpl
URL
URLConnection
URLEncoder 
URLStreamHandler 
4
Network Programming
Exceptions in Java
BindException
ConnectException
MalformedURLException
NoRouteToHostException
ProtocolException
SocketException
UnknownHostException
UnknownServiceException
5
Network Programming
Lớp InetAddress
Xử lý địa chỉ Internet theo tên và địa chỉ IP
Các hàm chuyển đổi tên/địa chỉ:/* trả về một đối tượng kiểu
InetAddress
*/
public static InetAddress getByName(String host) throwsUnknownHostException
/* trả về chuỗi đối tượng kiểu
InetAddress
*/
public static InetAddress[] getAllByName(String host) throwsUnknownHostExceptionpublic static InetAddress getLocalHost() throws UnknownHostExceptionpublic boolean isMulticastAddress()public String getHostName() /*trả về tên miền*/public byte[] getAddress() /*trả về địa chỉ IP dạng chuỗi byte*/public String getHostAddress() /*trả về địa chỉ IP dạng ký tự*/public int hashCode()public boolean equals(Object obj)public String toString()
6
Network Programming
import java.net.*;import java.io.*;public class IPFinder{public static void main(String[] args) throws IOException{String host;BufferedReader input =new BufferedReader(new InputStreamReader(System.in));System.out.print("\n\nEnter host name: ");host = input.readLine(); /*

c chu
i ký t
 
nh
p t
 
bàn phím*/ try{InetAddress address = InetAddress.getByName(host);System.out.println("IP address: " + address.toString());}catch (UnknownHostException e){System.out.println("Could not find " + host);}}}
 
12/6/20072
7
Network Programming
Lấy địa chỉ của máy chủ
import java.net.*;public class MyLocalIPAddress{public static void main(String[] args){try{InetAddress address = InetAddress.getLocalHost();System.out.println (address.toString());}catch (UnknownHostException e){System.out.println("Could not find local address!");}}}
8
Network Programming
Truyền tin với giao thức TCP
TCP clientTCP server
socket()ServerSocket()ServerSocket
.
accept()
BufferedReader 
.readLine()
PrintWriter 
.println()read()connect()write()close()
Connectionrequest
EOF
Wait nextrequest
Process request
data (request)data (reply)
BufferedReader 
.readLine()ServerSocket
.
close()
9
Network Programming
Lớp Java.net.Socket
Lớp cơ bảncủa Java để thực hiện truyền tin TCP phíamáy khách
Thiết lập hoặc ngắt kết nối và thiết lập các tùy chọn socket
Kết nối được thiết lập khi khởi tạo đối tượng
Mỗi đối tượng Socket được gán với một máy chủ duy nhất
Để kết nối với một máy chủ khác, phải tạo ra một đối tượngSocket mới
public Socket(String host, int port) throws UnknownHostException,IOExceptionpublic Socket(InetAddress address, int port) throws IOExceptionpublic Socket(String host, int port, InetAddress localAddress, intlocalPort)throws IOExceptionpublic Socket(InetAddress address, int port, InetAddress localAddress,int localPort) throws IOException
10
Network Programming
The Java.net.Socket Class (2)
Gửi và nhận dữ liệu được thực hiện thông qua dòng dữ liệu xuất/nhập
Có một số hàmđể lấy đối tượng là dòng nhập cho một socket và dòng xuất chosocket đó.public InputStream getInputStream() throws IOExceptionpublic OutputStream getOutputStream() throws IOException
Lấy thông tin về một Socket
public InetAddress getInetAddress( )
public int getPort( )
public int getLocalPort( )
public InetAddress getLocalAddress( )
Đóng socket:
public void close() throws IOException
public void shutdownInput( ) throws IOException // Java 1.3
public void shutdownOutput( ) throws IOException // Java 1.3
public boolean isInputShutdown( ) // Java 1.4
public boolean isOutputShutdown( ) // Java 1.4
11
Network Programming
TCP Sockets
M
Á
Y KH
Á
CH:
1.
Thi
t l
p k
t n
i

n m
á
y ch
Socket link = new Socket(inetAddress.getLocalHost(),1234)
2.
Thi
t l
p c
á
c dòng xu
t/nh
p d
li
u
3.
G
i v
à
nh
n d
li
u
4.
ó
ng k
t n
i
12
Network Programming
Ví dụ: DaytimeClient.java
import java.net.*;import java.io.*;public class DaytimeClient {public static void main(String[] args) {String hostname;int port;if (args.length > 0) {hostname = args[0];port = Integer.parseInt(args[1]);}else {hostname = "time.nist.gov";port = 13;}
 
12/6/20073
13
Network Programming
Example: DaytimeClient.java (2)
try {Socket theSocket = new Socket(hostname, port);InputStream timeStream = theSocket.getInputStream( );StringBuffer time = new StringBuffer( );int c;while ((c = timeStream.read( )) != -1)time.append((char) c);String timeString = time.toString( ).trim( );System.out.println("It is " + timeString + " at " + hostname);} // end trycatch (UnknownHostException ex) {System.err.println(ex);}catch (IOException ex) {System.err.println(ex);}} // end main} // end DaytimeClient
14
Network Programming
Lớp Java.net.ServerSocket
L
p
 java.net.ServerSocket 
bao g
m
Các hàm kh
i t
o

i t
ư
ng ServerSocket
Các hàm ch
k
t n
i
Các hàm thi
t l
p các lo
i tùy ch
n socket máy ch
Các hàm th
ư
ng dùng khác nh
ư
toString( )
Có b
n hàm kh
i t
o ServerSocket cho phép thi
t l
pc
ng, kích th
ư
c hàng

i c
a các yêu c
u k
t n
i vànetwork interface gán cho ti
n trình máy ch
public ServerSocket(int port) throws IOException
public ServerSocket(int port, int backlog) throws IOException
public ServerSocket(int port, int backlog, InetAddress bindAddr)throws IOException
public ServerSocket( ) throws IOException // Java 1.4
15
Network Programming
Lớp Java.net.ServerSocket -Chấp nhậnvà đóng kết nối
public Socket accept() throws IOException 
D
ng th
c hi
n c
a ti
n trình và

i k
t n
i t
 máy khách
Khi có m
t máy khách k
t n
i

n, hàm accept( )s
tr
v
m
t

i t
ư
ng Socket
public void close() throws IOException 
óng socket máy ch
và gi
i phóng c
ng ch
16
Network Programming
TCP Sockets
M
Á
Y CH
:
1.
T
o m
t

i t
ư
ng ServerSocket
ServerSocket servSocket = new ServerSocket(1234); 
2.
ư
a m
á
y ch
v
à
o tr
ng th
á
i ch
Socket link = servSocket.accept(); 
3.
Thi
t l
p c
á
c dòng xu
t/nh
p d
li
u
4.
G
i v
à
nh
n d
li
u
out.println(awaiting data 
 ); String input = in.readLine(); 
5.
ó
ng k
t n
i
link.close()
17
Network Programming
Thiết lập dòng xuất/nhập dữ liệu
Khi m
t socket
ư
c k
t n
i
ch
ú
ng ta c
ó
th
g
i d
li
u thông qua m
t dòng xu
t d
li
u
ch
ú
ng ta c
ó
th
nh
n d
li
u thông qua m
t dòng nh
p d
li
u
S
d
ng h
à
m
getInputStream 
and
getOutputStream 
of class
Socket 

thi
t l
p dòng xu
t/nh
p d
li
u
BufferedReader in = new BufferedReader( new InputStreamReader(link.getInputStream())); PrintWriter out = new PrintWriter(link.getOutputStream(),true); 
18
Network Programming
Ví dụ về máy chủ TCP Echo
import java.net.*;// need this for InetAddress, Socket, ServerSocketimport java.io.*;// need this for I/O stuffpublic class TCPEchoServer {static final int BUFSIZE=1024; // define a constant used as size of bufferstatic public void main(String args[]) {if (args.length != 1) {throw new IllegalArgumentException("Must specify a port!");}int port = Integer.parseInt(args[0]);try {ServerSocket ss = new ServerSocket(port); // Create Server Socket (passive socket)while (true) {Socket s = ss.accept();handleClient(s);}} catch (IOException e) {System.out.println("Fatal I/O Error !");System.exit(0);}}

Activity (72)

You've already reviewed this. Edit your review.
Nguyễn Ngọc Giàu added this note
It's very usefull for me ^^ thanks a lot
1 thousand reads
1 hundred reads
Nhung Nguyen added this note
^_^ udp vs tcp
Nhung Nguyen liked this
Nhung Nguyen liked this
ottonguyen0810 liked this
Glow Worm liked this
Phuong Le liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->