Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1502899
  • 博文数量: 108
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 997
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-29 09:58
个人简介

兴趣是坚持一件事永不衰竭的动力

文章分类

全部博文(108)

文章存档

2021年(1)

2020年(10)

2019年(19)

2018年(9)

2016年(23)

2015年(43)

2013年(3)

我的朋友

分类: Java

2015-11-18 23:55:13

package com.test.view;


import java.net.*;
import java.io.*;


public class ChatServerSocket
{
private ChatJFrame chatframe; // 聊天室的图形用户界面
private ServerSocket server; // 提供TCP连接服务的ServerSocket对象
private Socket client; // 与客户端通信的Socket对象


public ChatServerSocket(int port, String name) // 约定端口号、网名
{
try
{
server = new ServerSocket(port); // 创建ServerSocket对象,提供TCP连接服务
client = server.accept(); // 等待接收一个客户端的连接申请
// 连接成功后返回一个已连接的Socket对象
BufferedReader cin = new BufferedReader(new InputStreamReader(client.getInputStream()));
// 获得Socket对象的输入流,创建字符输入流
PrintWriter cout = new PrintWriter(client.getOutputStream(), true);
// 获得Socket对象的输出流,创建字符输出流


chatframe = new ChatJFrame(name, " 服务端 端口" + port, cout); // 创建聊天室的图形用户界面
chatframe.receive("连接 " + cin.readLine()); // 接收并显示已连接的对方网名
cout.println(name); // 将自己网名发送给对方


String aline = "";
do // 从输入流接收对方发来的字符串
{
aline = cin.readLine(); // 读取一行字符串,输入流结束时返回null
if (aline != null && !aline.equals("bye")) // "bye"是约定离线信息
chatframe.receive(aline);
} while (aline != null && !aline.equals("bye"));


chatframe.setWriter(null); // 设置聊天室界面的输出流对象为空


cin.close();
cout.close();


client.close(); // 关闭Socket连接
server.close(); // 停止等候客户端的连接请求
} catch (IOException e)
{
}
}


public static void main(String args[])
{
new ChatServerSocket(2001, "花仙子"); // 约定端口号,指定网名
}
}

阅读(1020) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~