最近感觉网络编程方面知道的比较少,今天做了一个小例子,就是客服端与服务器端的连接,使用了多线程,具体的代码如下:
服务器端:
package com.bmldyq.sockey.server;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
public static void main(String[] args) {
new SocketServer().star();
}
public void star() {
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(8888);
while (true) {
Socket socket = serverSocket.accept();
Thread th = new Thread(new ServerHandler(socket));
th.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
public class ServerHandler extends Thread {
private Socket socket;
public ServerHandler(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
// 用于向客户端发送数据的输出流
try {
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
// // 接受客服端发过来的请求
DataInputStream dis = new DataInputStream(socket.getInputStream());
String msg=dis.readUTF();
System.out.println("客服端:"+msg+" 已连接!");
// 向客服端发送信息
dos.writeUTF(msg+"服务器端正常连接");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客服端:
package com.bmldyq.sockey.client;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
new Client().connectionServer();
}
private void connectionServer(){
Socket socket = null;
System.out.println("请输入用户名:");
Scanner sc = new Scanner(System.in);
String uname = sc.next();
System.out.println("请输入密码:");
String upwd = sc.next();
if (!uname.equals("") && !upwd.equals("")) {
System.out.println("登陆成功,正在进行服务器连接...");
try {
socket = new Socket("localhost", 8888);
DataOutputStream dos = new DataOutputStream(socket
.getOutputStream());
DataInputStream dis = new DataInputStream(socket
.getInputStream());
// 向服务器段写入请求
dos.writeUTF(uname);
System.out.println(dis.readUTF());
connectionServer();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("登陆失败,系统将退出!");
System.exit(0);
}
}
}
就是客服端输入用户信息进入服务器端的连接并且返回连接信息,比较简单
分享到:
相关推荐
基于socket简单通信协议实现 基于socket简单通信协议实现
MFC基于无连接Socket简单通信,测试简单的通信,有源码和exe文件,非常详细,可用于收发数据,简单的UDP连接。
Android 类型的Socket 简单通信
主要介绍了C语言实现socket简单通信的方法,是学习C语言网络编程非常基础而又实用的实例,需要的朋友可以参考下
Qt利用tcp-socket简单通信。客户端与服务端互发字符串
基于VC++6.0的socket 通信简单例子,可以参考修改
先运行socketsever,再调试运行socketclient,实现客户端和服务端本地相互通信,简单的socket通信
系统环境:Win7 X64,开发软件:VS2010,语言:VC++ 利用Socket实现C/S架构简单通信,可实现双向收发信息,文件含客户端及服务器端完整工程,有界面。
自己写的winform简单通信,客户端发送,服务端回复,发送文件,发送闪屏。
硬件环境:HP Compaq 6510b,内存2G,处理器Intel(R)Core(TM)Duo CPU T7250 @2.00GHz . 开发环境和开发平台:windows7 32位操作系统 ,Visual Studio 2005,开发语言 C#. 网络环境:局域网
Socket源码 简单异步通信 Socket源码 简单异步通信 Socket源码 简单异步通信
总结Silverlight中应用Socket的几点特殊之处 1.所有的操作都必须的异步的,包括连接,发送和接收消息 2.Silverlight只能做客户端,不能做服务器(虽然这句看起来说的有点多余,不过确实有朋友想这么做呢) 3....
简单的socket通信,服务端和客户端的代码都有,vs2015开发,有源码,可以直接运行
一个简单实用的Socket程序,对于Socket的初学者来说很有帮助~
socket通信库,c++编写,只需调用几个函数即可完成socket通信过程。简单易用,C#等其他语言可调用.问题沟通可发送邮件至gaocongly@126.com
2个窗口分别模拟服务器端和客户端,基于TCP协议的socket通信,实现互相通信
什么是socket通信? TCP/IP协议是传输层协议,主要解决数据如何在网络中传输。HTTP是应用层协议,主要解决如何包装数据。 Socket是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的...
HP-Socket 对通信层完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。 为了让使用者能方便快速地学习和使用 HP-Socket
Ssocket单对多,带有广播通信,Ssocket单对多,带有广播通信Ssocket单对多,带有广播通信Ssocket单对多,带有广播通信
使用方法:在本地测试的话,获取本地ip, 1.打开server和client winform窗口 2.在client第1个输入框输入ip,点击连接,完成...-------至此完成从client到server消息发送 同理在server操作完成从server到 client消息发送