一:服务端:1.创建客户端:package com.ywh.serversocket;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.util.Se ...
一:服务端:
1.创建客户端:
package com.ywh.serversocket;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;import java.util.Set;public class LoginThread extends Thread{ Socket client; boolean bl; //通过构造传入一个客户socket public LoginThread(Socket socket) { client=socket; } @Override public void run() { // TODO Auto-generated method stub try { //如果登录成功才运行发送消息的线程 LoginServer(); if(bl) { new SendThread(client).start(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void LoginServer()throws Exception { //将连接后客户端输入传过来的用户名进行比对确认是否存在此用户 //先把传过来的用户名转换为string字符串 InputStream input=client.getInputStream(); byte[] bytes=new byte[1024]; input.read(bytes); String str=new String(bytes); System.out.println(str); //通过Set的add方法的返回值来确认用户名是否存在, //若用户名存在返回值为false,不存在则将新用户名加入用户名Set为true, boolean b=UserInfo.nickName.add(str); OutputStream output=client.getOutputStream(); if(b) { //当b=true,即新建用户成功时通知所有用户有新用户上线 //告知当前新用户创建成功 output.write("1".getBytes()); //将新用户的socket和用户名存入用户名map UserInfo.userMap.put(client, str); //获取用户socket Set<Socket> users=UserInfo.userMap.keySet(); for(Socket user:users) { OutputStream op=user.getOutputStream(); op.write((str+"已上线").getBytes()); } bl=true; }else { //若创建新用户失败,则返回false output.write("0".getBytes()); LoginServer(); bl=false; } } }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:socket网络套节字
关键词:网络
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。