📄 myserver.java
字号:
//源文件名:myServer.java
//在下载源程序中的文件夹:1104Socket通讯实例服务器端
import java.net.*;
import java.io.*;
public class myServer implements Runnable
{
ServerSocket server;
Socket clientSocket;
boolean end = false; //结束标记end = true结束
Thread c; //向客户器端发送信息的线程
BufferedReader sIn;
DataOutputStream sOut;
public static void main(String args[])
{
new myServer().ServerStart();
}
public void ServerStart()
{
try
{
server = new ServerSocket(5678);
System.out.println("使用端口号:"+server.getLocalPort());
while(! end)
{
clientSocket = server.accept();
System.out.println("已与客户端建立连接!");
InputStream inStream = clientSocket.getInputStream();
sIn = new BufferedReader(new InputStreamReader(inStream));
OutputStream outStream = clientSocket.getOutputStream();
sOut = new DataOutputStream(outStream);
c = new Thread(this);
c.start(); //启动线程,向客户器端发送信息
String aline;
while((aline=sIn.readLine())!=null) //接收客户端的数据
{
System.out.println("客户说:" + aline);
if(aline.equals("bye") | aline.equals("再见"))
{
end = true;
c.interrupt(); //线程中断
break;
}
}
sOut.close(); //关闭流
outStream.close();
sIn.close();
inStream.close();
clientSocket.close(); //关闭Socket连接
System.exit(0); //程序运行结束
}
}
catch(Exception e)
{
System.out.println("客户端出错!Ctrl + c 退出");
}
}
public void run()
{
while(true)
{
try
{
int ch;
while(true)
{ //从键盘接收字符并向客户端发送
ch=System.in.read();
sOut.write((byte)ch);
if(ch=='\n')
sOut.flush(); //将缓冲区内容向输出流发送
}
}
catch(Exception e)
{
System.out.println(e);
}
}
}
public void finalize()
{
try
{
server.close(); //停止ServerSocket服务
}
catch(IOException e)
{
System.out.println(e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -