写了一个javaSocket通信的例子,比较容易懂,主要是TCP协议的。下面是服务端的代码...

Java综合 .

写了一个javaSocket通信的例子,比较容易懂,主要是TCP协议的。下面是服务端的代码


Java代码 复制代码 收藏代码
1.import java.io.IOException;
2.import java.net.InetAddress;
3.import java.net.Socket;
4.
5.public class ServerSocket {
6.
7. public static void main(String[] args) {
8. beginSocket();
9. }
10.
11. public static void beginSocket(){
12. try {
13. java.net.ServerSocket serverSocket=new java.net.ServerSocket(3456);
14. InetAddress inta=serverSocket.getInetAddress().getLocalHost();
15. System.out.println(inta.getHostAddress());
16. while(true){
17. Socket socket=serverSocket.accept();
18. new HelloMessage(socket);
19. }
20. } catch (IOException e) {
21. e.printStackTrace();
22. }
23. }
24.}


为了提高并发时的处理效率,对于每个请求,系统都新建一个线程处理。


Java代码 复制代码 收藏代码
1.import java.io.BufferedReader;
2.import java.io.InputStreamReader;
3.import java.io.PrintWriter;
4.import java.net.Socket;
5.
6.public class HelloMessage extends Thread {
7. private Socket socket_ = null;
8. public HelloMessage(Socket socket) {
9. this.socket_ = socket;
10. this.start();
11. }
12.
13. public void run() {
14. try {
15. BufferedReader bReader = new BufferedReader(new InputStreamReader(
16. this.socket_.getInputStream()));
17. PrintWriter pWriter = new PrintWriter(this.socket_
18. .getOutputStream());
19. String requestStr = bReader.readLine();
20. if (requestStr != null && !"".equals(requestStr)) {
21. if (requestStr.equals("java")) {
22. pWriter.println("your write is java");
23. }
24. if (requestStr.equals(".net")) {
25. pWriter.println("your write is .net");
26. }
27. if (requestStr.equals("php")) {
28. pWriter.println("your write is php");
29. }
30. if (requestStr.equals("end")) {
31. pWriter.println("your write is end");
32.
33. }else{
34. pWriter.println("your write is other");
35. }
36. }else{
37. pWriter.println("your write is null");
38. }
39. pWriter.flush();
40. pWriter.close();
41. bReader.close();
42. this.socket_.close();
43. } catch (Exception e) {
44. e.printStackTrace();
45. }
46.
47. }
48.}


然后是客户端的代码。


Java代码 复制代码 收藏代码
1.import java.io.BufferedReader;
2.import java.io.IOException;
3.import java.io.InputStreamReader;
4.import java.io.PrintWriter;
5.import java.net.Socket;
6.import java.net.UnknownHostException;
7.
8.public class ClientSocket {
9. public static void main(String[] args) {
10. clientRequest();
11. }
12. private static void clientRequest() {
13. try {
14. while (true) {
15. Socket clientSocket = new Socket("172.168.4.105", 3456);
16. BufferedReader bReader = new BufferedReader(new InputStreamReader(
17. System.in));
18. System.out.println("please input java or .net or php or end");
19. String strLine = bReader.readLine();
20. if (strLine != null && !"".equals(strLine)) {
21. PrintWriter pWriter = new PrintWriter(clientSocket
22. .getOutputStream(), true);
23. pWriter.println(strLine);
24. BufferedReader br = new BufferedReader(
25. new InputStreamReader(clientSocket.getInputStream()));
26. String strResult = br.readLine();
27. System.out.println(strResult);
28.
29. pWriter.flush();
30. pWriter.close();
31. clientSocket.close();
32. }
33. }
34. } catch (UnknownHostException e) {
35. e.printStackTrace();
36. } catch (IOException e) {
37. e.printStackTrace();
38. }
39. }
40.}


这样一个简单的TCP,Socket编程的原型就成了。简单介绍下:



几个比较重要的API



.Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。

.getInputStream方法获得网络连接输入,同时返回一个IutputStream对象实例,。

.getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值