30.public static void main(String[] args) 31.{
- d: O4 l+ U0 y+ j5 t p' D" m6 j 32.new Server();9 K$ L& ~$ j' R- W3 F
33.}
0 O6 N; G( z7 u' {# r9 M 34.}) |% h/ A+ P$ k5 X2 h
这个程序建立了一个服务器,它一直监听10000端口,等待用户连接。在建立连接后给客户端返回一段信息,然后结束会话。这个程序一次只能接受一个客户连接。
, [2 ~0 Z( {4 t! r- N. d {建立客户端}8 ~# d, m1 e8 x
35.import java.io.*;' z$ p7 y, V( E; J* O
36.import java.net.*;1 I3 f. i# c4 {+ w: d4 Y
37.public class Client; H; W- `8 M5 M
38.{
, q3 V3 ]) b( Y O4 ^% v 39.Socket socket;
; g- Z' [5 |& V8 ?/ M& ~ 40.BufferedReader in;2 V$ E! D. a; \, j5 s
41.PrintWriter out;7 I+ y" w7 ^3 Q$ W- e
42.public Client()
/ N2 q' R# R9 t5 y$ T 43.{
6 X! V; }* T3 b1 \ 44.try
+ } d( [+ ~. a. J 45.{5 H, {3 }, }9 G+ Y
46.socket = new Socket("xxx.xxx.xxx.xxx", 10000);' F9 m4 \& F- r& [- R% w
47.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
2 [) k6 ~9 J8 `0 M 48.out = new PrintWriter(socket.getOutputStream(),true);5 D3 ~# g2 ?0 E7 u) s
49.BufferedReader line = new BufferedReader(new InputStreamReader(System.in));/ ^) G. z3 ]9 g# g/ A. Z1 r
50.out.println(line.readLine());
6 Z& M$ W b4 m# b. C$ J/ m/ x 51.line.close();
8 z7 x; L/ H, i5 X8 q5 D 52.out.close();
" U/ e2 }6 ]6 ]; z, n7 e 53.in.close();* x4 O+ y& @! ]7 S% `% k
54.socket.close();
1 }+ G2 c3 v: z. c% \) E9 Y 55.}+ H. c1 D" l) I; X! R$ h
56.catch (IOException e)
2 |: o9 @5 @$ Y8 J/ c6 O 57.{}
. M* C8 u5 o/ Q: ^* Q" k# a 58.}
1 L |9 v7 @% u3 u5 o* s) } 59.public static void main(String[] args). z! g' R- l3 w- S- H/ y# v
60.{
! H2 d/ v4 f9 f1 ?+ Y$ |5 X& C 61.new Client(); K! M6 ~* ~( e2 ^: D: M
62.}
. y. X4 F$ @( c$ O( E 63.}
3 i! w" h$ n- m0 D1 V- } 这个客户端连接到地址为xxx.xxx.xxx.xxx的服务器,端口为10000,并从键盘输入一行信息,发送到服务器,然后接受服务器的返回信息,最后结束会话。以上就是对Java socket套接字的详细介绍。* ]2 r* B6 l9 ^, w
: g# q% C% l. j" ?- S) X. T) b 服务器,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。 |