`

java Socket和Server Socket多线程编程

阅读更多
下面的代码是java socket客户端和服务端的源码程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
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.http://wgyblog.com/html/166.html
65.    public static void main(String [] args)
66.    {
67.        new Client().start();
68.    }
69.}
分享到:
评论

相关推荐

    Java Socket 聊天室 多线程实现

    Java Socket 聊天室 多线程实现 Server End: How? Message From Client:[Hey~buddy~Where am I?] You're In My Office Message From Client:[Really?This Is Your Office?It's So Wonderful!] For Sure Buddy! ...

    Java的Socket网络编程以及多线程

    1.Socket是代表两台机器之间网络连接的对象(java.net.Socket)。  Socket的建立如下,参数分别是服务器端的IP地址和端口号: Socket socket = new Socket("167.5.75.1",5000);  2.客户端(Client)Socket的使用...

    socket网络编程服务端程序支持多客户端

    1.采用重叠I/O方式实现的socket网络编程,异步非阻塞方式,代码效率比阻塞式的socket编程方式高。2.实现了TCP server方式,只用于服务端,可以支持多客户端。3.可以使用在各种场合用于监控网络数据。4.代码封装成库...

    Java socket 编程

    本资源中包含了一个简单的Java Socket编程。其中创建了一个Client和一个Server。如果要开发个类似QQ的聊天工具,估计得将Client方implements Runnable,通过多线程实现。

    java网络白板

    自己写的一个网络白板程序,有客户端和服务器端,服务器实现多线程,并且可以实时显示连接数及连接的ip,客户端实现绘图功能,并把图像发到服务器端,服务器转发给其他客户端。代码是用java写的,采用的基本Server/...

    Math Server 算术多线程并发服务器

    一个简单Java Socket,multi-thread 的练习。是上学时的作业。 服务器实现了多线程并发处理来自客户端的算术请求。 初学套接字编程 和 多线程编程的可以看看。 请用jdk1.6以上。

    java_UDPSocket_codes.rar_ServerThread_java udp程序

    java 多线程UDP通信资料与代码: 1、UDP多线程通信server程序(serverThread)详细解析 2、简易UDP client程序 3、多线程Java_Socket编程示例等资料

    java多线程tcpsocketserver源码-UdpSocketUnity:UdpSocketUnity

    虽然Unity为socket编程和多人游戏实现提供了网络api和协议,但有时你需要建立自己的裸socket和通信协议。 由于当时我没有找到一个可以使用的、清晰的、多线程的 c# 套接字在 unity 中的使用示例,因此我开始为 udp ...

    一个服务器对多个客户端的MFC Socket编程示例(实现简单的即时通讯功能)

    实现一个服务器对多个客户端的关键是,在服务端的使用集合CPtrList类用保存客户端的socket对象,思想与Java中的编程思想一样,只不过Java中会使用多线程技术,在Vector集合保存客户端的socket对象 ,而MFC框架提供了...

    socket编程集萃

     Java对这个模型的支持有很多种Api,而这里我只想介绍有关Socket的编程接口,对于Java而言已经简化了Socket的编程接口。首先我们来讨论有关提供固定位置的服务方是如何建立的。Java提供了ServerSocket来对其进行...

    微信小程序聊天室,基于java、socket

    其中用到了局域网通信机制的原理,通过直接继承Thread类来建立多线程。开发中利用了计算机网络编程的基本理论知识,如TCP/IP协议、客户端/服务器端模式(Client/Server模式)、网络编程的设计方法等。在网络编程中对...

    java多线程tcpsocketserver源码-Java-Book:Java学习资料整理

    java多线程tcp socket server源码 Java学习资料整理 框架 / dubbo监控 / / / / / / / / / / / / / / / / / / / / 收藏 / 技术社区 书籍推荐 计算机基础 计算机科学导论 --(如果不是计算机科班的,应先看看计算机基础...

    基于JAVA的聊天系统的设计与实现

    服务器采用多线程以满足多用户的请求,并通过创建一个ServerSocket对象来监听来自客户的连接请求,默认端口为9527,然后无限循环调用accept()方法接受客户程序的连接。 服务器线程源码: package qq.server; import...

    《Java编程技巧典型案例解析》随书光盘

    实例13 基于Java语言的多线程同步机制 实例14 Java程序中的多线程实现 实例15 利用Java的多线程技术实现并行多任务的管理 实例16 在Win32系统中引导Java程序 实例17 利用Java实现一个非线性规划问题 实例...

    Java清华教程.rar

    Java语言的发展及相关技术的介绍,Java技术和平台在网络... ■ Java语言的网络编程技术和应用,Socket程序设计,Client/Server程序设计;  ■ Java的Servlet和JSP(Java Server Page)技术;  ■ JavaBeans和RMI。

    Java网络编程(第三版)中文版.part09.rar

    本书适合熟悉Java语言的读者的编程人员和计算机专业的学生阅读。 前言 1 第一章 Java网络编程的原因 13 网络程序的功能 14 安全性 27 等等!还有更多! 29 第二章 基本网络概念 30 网络 30 网络的分层 32 ...

    java多线程tcpsocketserver源码-Unity-UdpSocket-BitStream-Utilities:用于建立udp连接和

    虽然Unity为socket编程和多人游戏实现提供了网络api和协议,但有时你需要建立自己的裸socket和通信协议。 由于当时我没有找到一个可以使用的、清晰的、多线程的 c# 套接字在 unity 中的使用示例,因此我开始为 udp ...

    清华大学java教程

    ■ Java语言的发展及相关技术的介绍,Java技术和平台在... ■ Java语言的网络编程技术和应用,Socket程序设计,Client/Server程序设计;  ■ Java的Servlet和JSP(Java Server Page)技术;  ■ JavaBeans和RMI。

    JAVA清华教程 详细

    java清华版教程, ■ Java语言的发展及相关技术的介绍... ■ Java语言的网络编程技术和应用,Socket程序设计,Client/Server程序设计;  ■ Java的Servlet和JSP(Java Server Page)技术;  ■ JavaBeans和RMI。

    JAVA实战项目源码-计算机毕业设计java专业-项目源码-项目说明介绍-基于JAVA的网络通讯系统设计与实现(论文+系统)

    外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式,通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的,而Java提供的多线程功能,用...

Global site tag (gtag.js) - Google Analytics