下面的代码是java socket客户端和服务端的源码程序
package net.tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server extends Thread
{
ServerSocket server = null;
Socket sk = null;
BufferedReader rdr = null;
PrintWriter wtr = null;
public Server()
{
try
{
server = new ServerSocket(1987);
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void run()
{
while (true)
{
System.out.println("Listenning...");
try
{
// 每个请求交给一个线程去处理
sk = server.accept();
ServerThread th = new ServerThread(sk);
th.start();
sleep(1000);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String [] args)
{
new Server().start();
}
class ServerThread extends Thread
{
Socket sk = null;
public ServerThread(Socket sk)
{
this.sk = sk;
}
public void run()
{
try
{
wtr = new PrintWriter(sk.getOutputStream());
rdr = new BufferedReader(new InputStreamReader(sk
.getInputStream()));
String line = rdr.readLine();
System.out.println("从客户端来的信息:" + line);
// 特别,下面这句得加上 “\n”,
wtr.println("你好,服务器已经收到您的信息!'" + line + "'\n");
wtr.flush();
System.out.println("已经返回给客户端!");
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
客户端:
Java代码
1.package net.tcp;
2.
3.import java.io.BufferedReader;
4.import java.io.BufferedWriter;
5.import java.io.InputStreamReader;
6.import java.io.OutputStreamWriter;
7.import java.io.PrintWriter;
8.import java.net.Socket;
9.
10.public class Client extends Thread
11.{
12.
13. Socket sk = null;
14. BufferedReader reader = null;
15. PrintWriter wtr = null;
16. BufferedReader keyin = null;
17.
18. public Client()
19. {
20. keyin = new BufferedReader(new InputStreamReader(System.in));
21. try
22. {
23. sk = new Socket("127.0.0.1", 1987);
24. }
25. catch (Exception e)
26. {
27. e.printStackTrace();
28. }
29.
30. }
31.
32. public void run()
33. {
34. try
35. {
36. reader = new BufferedReader(new InputStreamReader(sk
37. .getInputStream()));
38. wtr = new PrintWriter(sk.getOutputStream());
39. String get = keyin.readLine();
40.
41. while (true)
42. {
43. if (get != null & get.length() > 0)
44. {
45. wtr.println(get);
46. wtr.flush();
47.// wtr.close();
48.// System.out.println(get + "发送完毕");
49. }
50. if (reader != null)
51. {
52. String line = reader.readLine();
53. System.out.println("从服务器来的信息:" + line);
54.
55. }
56.
57. }
58. }
59. catch (Exception e)
60. {
61. e.printStackTrace();
62. }
63. }
64.
65. public static void main(String [] args)
66. {
67. new Client().start();
68. }
69.} 




