189 8069 5689

java发送消息的源代码,java代码实现发送邮件

请问能不能帮我写一个Java的聊天窗口文件源代码,不要很复杂,只要能运行,聊天就行了!我用淘宝金币换,谢

话说网上真的好多啊...

成都网络公司-成都网站建设公司创新互联10余年经验成就非凡,专业从事做网站、成都做网站,成都网页设计,成都网页制作,软文发布平台一元广告等。10余年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:028-86922220,我们期待您的来电!

package client;

import java.awt.Color;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.Socket;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class ClientFrame extends JFrame{

private JTextArea allmsg;

private JTextField welcome,copyright,chatmsg;

private JButton send;

private JScrollPane js;

private boolean isConnected = true;

public DataOutputStream out;

public DataInputStream in;

public Socket s = null;

String nic; /* -- 保存用户昵称 --*/

/**

* 初始化客户端资源

* 1.获取从LoginFrame传递过来的参数

* 2.初始化界面元素

* 3.初始化通信所需要的资源 EG:输入/输出流(DataInputStream/DataOutputStream)

* */

public ClientFrame(String name,Socket socket)

{

this.setSize(310,660);

this.setLocation(290,50);

this.setTitle("聊天室客户端"+name+"");/* -- 指定窗口的标题 --*/

this.s = socket;/* -- 接收从LoginFrame中传递过来的Socket --*/

this.nic = name+" 说: ";

welcome = new JTextField(" "+name+" 欢迎您来到聊天室 ",100);

welcome.setBackground(Color.blue);

welcome.setEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyright.setEnabled(false);

allmsg = new JTextArea();

allmsg.setEditable(false);

allmsg.append(" 系统消息: 欢迎登录在线聊天室 \n");

js = new JScrollPane(allmsg);//为JTextArea添加滚动条

chatmsg = new JTextField("在此输入聊天信息");

chatmsg.addActionListener(new listen());

send = new JButton("发送");

send.addActionListener(new listen());/* -- 添加事件监听器 --*/

try {

out = new DataOutputStream(s.getOutputStream());

in = new DataInputStream(s.getInputStream());

} catch (IOException e) {JOptionPane.showMessageDialog(null, "系统异常","错误",JOptionPane.OK_CANCEL_OPTION);}

addcomponettocontainer();

/* -- 当用户关闭窗口时进行相关的处理 eg:Socket Data(Input/Output)Stream 的关闭--*/

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("quitlogout");/* -- 向服务器端发送关闭信息 --*/

isConnected = false;

destory();/* -- 销毁窗口资源 --*/

}

});

new Thread(new linread()).start();/* -- 启动读取信息线程 --*/

}

public void addcomponettocontainer()

{

Container c = this.getContentPane();

c.setLayout(null);

welcome.setBounds(75,10,150,20);

js.setBounds(10,50,280,500);

chatmsg.setBounds(10,560,180,30);

send.setBounds(220,560,70,30);

copyright.setBounds(10,600,280,20);

c.add(welcome);

c.add(js);

c.add(chatmsg);

c.add(send);

c.add(copyright);

this.setVisible(true);

this.setResizable(false);

}

class listen implements ActionListener

{

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

if(e.getSource()==send||e.getSource()==chatmsg)

{

String msg = chatmsg.getText().trim();

if("".equals(msg))

{

JOptionPane.showMessageDialog(null,"发送信息不能为空!","错误",JOptionPane.OK_OPTION);

}

else

{sendmsg((new Date()).toLocaleString()+"\n"+nic+msg+"\n");chatmsg.setText("");}

}

}

}

/* -- 向服务器端发送信息 --*/

public void sendmsg(String m)

{

if(isConnected)//如果socket的输出流没关闭

{

try {

out.writeUTF(m);

} catch (IOException e) {

JOptionPane.showMessageDialog(null,"发送信息失败!(系统异常)","错误",JOptionPane.OK_OPTION);

}

}

else

{

JOptionPane.showMessageDialog(null,"发送信息失败!(服务器关闭/网络故障)","错误",JOptionPane.OK_OPTION);

}

}

/* -- 读取信息线程 --*/

class linread implements Runnable

{

public void run()

{

read();

}

public void read()

{

while(isConnected)

{

try {

String msg = in.readUTF();

if("SYSTEM_CLOSED".equals(msg))

{

JOptionPane.showMessageDialog(null,"读取消息失败(服务器关闭/网络故障)!","错误",JOptionPane.OK_OPTION);

isConnected = false;

}

else

allmsg.append(msg+"\n");

} catch (IOException e) {

}

}//end while

JOptionPane.showMessageDialog(null,"读取消息失败(服务器关闭/网络故障)!","错误",JOptionPane.OK_OPTION);

}//end read()

}

public void destory()

{

try {

this.out.close();

this.in.close();

this.s.close();

} catch (IOException e) {

}

this.dispose();

}

}

======================================================

package client;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

public class LoginFrame extends JFrame{

private JTextField name;

private JTextField ip;

private JButton ok,cancle;

public Socket socket;

public LoginFrame()

{

super("登录框");

this.setSize(400,80);

this.setLocation(100,100);

name = new JTextField("昵称");

ip = new JTextField("127.0.0.1");

ok = new JButton("登录");

cancle = new JButton("取消");

ok.addActionListener(new listenEvent());

cancle.addActionListener(new listenEvent());

//建立容器

addcomponettocontainer();

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

/**

* 建立容器及控件

*/

public void addcomponettocontainer()

{

Container c = this.getContentPane();

c.setLayout(null);

name.setBounds(10,10,100,30);

ip.setBounds(120,10,100,30);

ok.setBounds(230,10,70,30);

cancle.setBounds(310,10,70,30);

c.add(name);

c.add(ip);

c.add(ok);

c.add(cancle);

this.setVisible(true);

this.setResizable(false);

}

public class listenEvent implements ActionListener

{

public void actionPerformed(ActionEvent event) {

// TODO Auto-generated method stub

if(event.getSource()==ok)

{

String n = name.getText().trim();

String i = ip.getText().trim();

if("".equals(n)||"".equals(i))

{

JOptionPane.showMessageDialog(null,"昵称、IP不能够为空!","错误",JOptionPane.OK_OPTION);

}

else{login(n,i);}

}

if(event.getSource()==cancle)

{

name.setText("");

ip.setText("");

}

}

}

/**

* 进行登录

* @param name

* @param ip

*/

public void login(String name,String ip)

{

try {

socket = new Socket(ip,7777);

DataOutputStream out = new DataOutputStream(socket.getOutputStream());

out.writeUTF(name);

out.flush();//强制输出缓存中的内容

//out.close();

new ClientFrame(name,socket);

destroywindow();

} catch (UnknownHostException e) {

JOptionPane.showMessageDialog(null,"找不到主机地址(IP错误/网络故障)!","错误",JOptionPane.OK_OPTION);

} catch (IOException e) {

}

}

public void destroywindow()

{

this.dispose();

}

public static void main(String[] args)

{

new LoginFrame();

}

}

==================================================

package server;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.ArrayList;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextField;

public class ServerFrame extends JFrame{

/**

*

*/

private static final long serialVersionUID = 1L;

private JTextArea allmsg;

private JTextField currnum,totalnum,copyright,chatmsg;

private JButton send;

private JScrollPane js;

int num1,num2,port;/* -- num1:当前在线人数 num2:总上线人数 port:服务端口号 --*/

private ServerSocket ss;

ArrayListuser lists;//存放所有在线用户

public ServerFrame()

{

super("聊天室服务器端");

this.setSize(310,660);

this.setLocation(200,50);

lists = new ArrayListuser();

num1 = num2 =0;

port = 7777;

currnum = new JTextField(" 当前在线人数: "+num1);

currnum.setEnabled(false);

totalnum = new JTextField(" 上线总人数: "+num2);

totalnum.setEnabled(false);

copyright = new JTextField(" ----- all copyright @ TOP-king -----");

copyright.setEnabled(false);

allmsg = new JTextArea();

allmsg.append(" --------------- 系统消息 --------------\n");

allmsg.setEditable(false);

allmsg.setLineWrap(true); //允许自动换行

js = new JScrollPane(allmsg);//为JTextArea添加滚动条

chatmsg = new JTextField("在此输入系统信息");

chatmsg.addActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsg.getText().trim();

if(!"".equals(str))

{sendmsg((new Date()).toLocaleString()+" -- 系统消息: "+str);chatmsg.setText("");}

else

JOptionPane.showMessageDialog(null, "消息不能为空","错误",JOptionPane.OK_OPTION);

chatmsg.setText("");/* -- 发送信息后,将输入栏中的信息清空 -- */

}

});

send = new JButton("发送");

send.addActionListener(new ActionListener(){

@SuppressWarnings("deprecation")

public void actionPerformed(ActionEvent arg0) {

String str = chatmsg.getText().trim();

if(!"".equals(str))

{sendmsg((new Date()).toLocaleString()+" -- 系统消息: "+str);chatmsg.setText("");}

else

JOptionPane.showMessageDialog(null, "消息不能为空","错误",JOptionPane.OK_OPTION);

chatmsg.setText("");/* -- 发送信息后,将输入栏中的信息清空 -- */

}

});

//建立容器

addcomponettocontainer();

this.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent we)

{

sendmsg("SYSTEM_CLOSED");/* -- 向客户端发送服务器关闭信息 -- */

destory();

}

});

start(); /* -- 启动连接服务 -- */

}

public void addcomponettocontainer()

{

//Container建立容器

Container c = this.getContentPane();

c.setLayout(null);

currnum.setBounds(20,15,130,20);

totalnum.setBounds(155,15,125,20);

js.setBounds(10,50,280,500);

chatmsg.setBounds(10,560,180,30);

send.setBounds(220,560,70,30);

copyright.setBounds(10,600,280,20);

c.add(currnum);

c.add(totalnum);

c.add(js);

c.add(chatmsg);

c.add(send);

c.add(copyright);

this.setVisible(true);

this.setResizable(false);

}

/**

* start()方法监听客户的连接

* 并且保存客户端的相关信息EG:用户昵称、用户所使用的Socket

* 用户连接到服务器成功之后,将其保存到用户列表中,并为该用户启动一个线程用于通信 */

@SuppressWarnings("deprecation")

public void start()

{

boolean isStarted = false;/* -- 用于标记服务器是否已经正常启动 -- */

try {

this.ss = new ServerSocket(port);

isStarted = true;

this.allmsg.append((new Date()).toLocaleString()+" 服务器启动 @ 端口: "+port+"\n");

while(isStarted)

{

Socket client = this.ss.accept(); /* -- 监听客户端的连接 -- */

DataInputStream in = new DataInputStream(client.getInputStream());

String name = in.readUTF();

user u = new user();

u.name = name;

u.socket = client;

lists.add(u); //将该用户加到列表中去

num1++;

num2++;

currnum.setText(" 当前在线人数: "+num1);

totalnum.setText(" 上线总人数: "+num2);

this.allmsg.append((new Date()).toLocaleString()+" : "+u.name+" 登录 \n");

new Thread(new ClientThread(u)).start();/* -- 为该用户启动一个通信线程 -- */

}

} catch (IOException e) {

System.out.println("服务器已经启动......");

System.exit(0);

}

}

/**

* 通信线程主要功能包括:

* 1.监听客户端输入的信息

* 2.将接收到的信息转发给其他用户 */

class ClientThread implements Runnable

{

user user = null;

boolean isConnected = true;

DataInputStream dis = null;

DataOutputStream dos = null;

public ClientThread(user u)

{

this.user = u;

try {

this.dis = new DataInputStream(this.user.socket.getInputStream());

this.dos = new DataOutputStream(this.user.socket.getOutputStream());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void run()

{

readmsg();

}

/* -- 读取客户的聊天信息 -- */

@SuppressWarnings("deprecation")

public void readmsg()

{

while(isConnected)

{

try {

String msg = dis.readUTF();

if("quitlogout".equals(msg))//当用户关闭客户端窗口时,发送quit字符串 表示用户已经退出

{

num1--;

try{

this.dis.close();

this.dos.close();

this.user.socket.close();

this.isConnected = false;

}catch(IOException ioe)

{

ioe.printStackTrace();

}finally{

this.isConnected = false;

if(dis!=null) this.dis.close();

if(dos!=null) this.dos.close();

if(this.user.socket!=null) this.user.socket.close();

}

lists.remove(this.user);//从列表中删除该用户

currnum.setText(" 当前在线人数: "+num1);

allmsg.append((new Date()).toLocaleString()+" : "+this.user.name+" 退出\n");

}

else

sendmsg(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

/* -- 将信息进行转发 -- */

public void sendmsg(String msg)

{

user us = new user();

DataOutputStream os = null;

if(lists.size()0)

{

for(int i=0;ilists.size();i++)

{

us = lists.get(i);

try {

os = new DataOutputStream(us.socket.getOutputStream());

os.writeUTF(msg);

} catch (IOException e) {

e.printStackTrace();

}

}

}

else

JOptionPane.showMessageDialog(null, "当前无用户在线。发送消息失败","失败",JOptionPane.OK_OPTION);

}

public void destory()

{

try {

this.ss.close();

} catch (IOException e) {

e.printStackTrace();

}

this.dispose();

}

public static void main(String[] args)

{

new ServerFrame();

}

}

=================================================

package server;

import java.net.*;

public class user {

String name;

Socket socket;

}

Java mail 发送邮件例子 源代码

晕,貌似这个问题以前有人提过,我也回答过了,不满意吗?需要用到javamail的jar包,网上有。找不到把邮箱贴出来,我发给你。package test.servlet;import java.io.IOException;

import java.io.PrintWriter;

import java.util.Date;

import java.util.Properties;import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;public class SendMailServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 2960000940515881314L;

private ServletConfig config = null;

private static final String CONTENT_TYPE = "text/html";public void init(ServletConfig config1) throws ServletException {

this.config = config1;

}final public ServletConfig getServletConfig() {

return config;

}/**

* Constructor of the object.

*/

public SendMailServlet() {

super();

}/**

* Destruction of the servlet.

*/

public void destroy() {

super.destroy();

}/**

* The doGet method of the servlet.

*

* This method is called when a form has its tag value method equals to get.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}/**

* The doPost method of the servlet.

*

* This method is called when a form has its tag value method equals to post.

*

* @param request the request send by the client to the server

* @param response the response send by the server to the client

* @throws ServletException if an error occurred

* @throws IOException if an error occurred

*/

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String to_mail=codeToString(request.getParameter("to"));

String to_title=codeToString(request.getParameter("title"));

String to_content=codeToString(request.getParameter("content"));

Properties props=new Properties();//也可用Properties props = System.getProperties(); //

props.put("mail.smtp.host","localhost");//存储发送邮件服务器的信息

props.put("mail.smtp.auth","true");//同时通过验证

Session s=Session.getInstance(props);//根据属性新建一个邮件会话

s.setDebug(true);//由邮件会话新建一个消息对象

MimeMessage message=new MimeMessage(s);//由邮件会话新建一个消息对象//设置邮件

InternetAddress from;

try {

from = new InternetAddress("06254054@bjtu.mail.com");

message.setFrom(from);//设置发件人

InternetAddress to=new InternetAddress(to_mail);

message.setRecipient(Message.RecipientType.TO,to);//设置收件人,并设置其接收类型为TO

message.setSubject(to_title);//设置主题

message.setText(to_content);//设置信件内容

message.setSentDate(new Date());//设置发信时间

//发送邮件

message.saveChanges();//存储邮件信息

Transport transport=s.getTransport("smtp");

//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码

transport.connect("localhost",8479,"","");

transport.sendMessage(message,message.getAllRecipients());//发送邮件,其中第二个参数是所有已设好的收件人地址

transport.close();

response.setContentType(CONTENT_TYPE);

PrintWriter out = response.getWriter();

out.print("success");

} catch (AddressException e) {

e.printStackTrace();

} catch (MessagingException e) {

e.printStackTrace();

}}

public String codeToString(String str) {//处理中文字符串的函数

String s=str;

try {

byte tempB[]=s.getBytes("ISO-8859-1");

s=new String(tempB);

return s;

} catch(Exception e) {

return s;

}

}

}

如何使用java实现两台计算机的通信 源代码

一个简单的聊天程序

参考一下;

//客户端的

import java.io.*;

import java.net.*;

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class ChatClient {

public static void main(String[] args) {

ChatClient cc=new ChatClient();

cc.receive();

}

JTextField jtf;

JTextArea jta;

Socket s;

PrintWriter out;

BufferedReader in;

public ChatClient(){

JFrame frame=new JFrame("ChatClient");

frame.setSize(400,300);

jta=new JTextArea();

jta.setEditable(false);

jtf=new JTextField();

jtf.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent arg0) {

send();

}

});

frame.getContentPane().add(new JScrollPane(jta));

frame.getContentPane().add(jtf,"South");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

try {

s=new Socket("127.0.0.1",9000);

in=new BufferedReader(new InputStreamReader(s.getInputStream()));

out=new PrintWriter(s.getOutputStream());

} catch (UnknownHostException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void receive(){

while(true){

try {

String text=in.readLine();

this.jta.append(text+"\n");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return;

}

}

}

public void send(){

String text=this.jtf.getText();

this.jtf.setText("");

out.println(text);

out.flush();

}

}

//服务器端的

import java.net.*;

import java.io.*;

import java.util.*;

public class ChatServer {

public static void main(String[] args) throws Exception {

ServerSocket ss=new ServerSocket(9000);

List list=new ArrayList();

while(true){

Socket s=ss.accept();

list.add(s);

Thread t=new ServerThread(s,list);

t.start();

}

}

}

class ServerThread extends Thread{

Socket s;

List list;

BufferedReader in;

PrintWriter out;

public ServerThread(Socket s, List list) {

this.s = s;

this.list = list;

try {

in=new BufferedReader(new InputStreamReader(s.getInputStream()));

out=new PrintWriter(s.getOutputStream());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public void run(){

while(true){

try {

String str=in.readLine();

if (str==null) return;

Iterator it=list.iterator();

while(it.hasNext()){

Socket socket=(Socket)(it.next());

PrintWriter o=new PrintWriter(socket.getOutputStream());

o.println(str);

o.flush();

}

} catch (IOException e) {

// TODO Auto-generated catch block

//e.printStackTrace();

return;

}

}

}

}

速求用JAVA语言写聊天室的源代码

【ClientSocketDemo.java 客户端Java源代码】

import java.net.*;

import java.io.*;

public class ClientSocketDemo

{

//声明客户端Socket对象socket

Socket socket = null;

//声明客户器端数据输入输出流

DataInputStream in;

DataOutputStream out;

//声明字符串数组对象response,用于存储从服务器接收到的信息

String response[];

//执行过程中,没有参数时的构造方法,本地服务器在本地,取默认端口10745

public ClientSocketDemo()

{

try

{

//创建客户端socket,服务器地址取本地,端口号为10745

socket = new Socket("localhost",10745);

//创建客户端数据输入输出流,用于对服务器端发送或接收数据

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

//获取客户端地址及端口号

String ip = String.valueOf(socket.getLocalAddress());

String port = String.valueOf(socket.getLocalPort());

//向服务器发送数据

out.writeUTF("Hello Server.This connection is from client.");

out.writeUTF(ip);

out.writeUTF(port);

//从服务器接收数据

response = new String[3];

for (int i = 0; i response.length; i++)

{

response[i] = in.readUTF();

System.out.println(response[i]);

}

}

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

}

//执行过程中,有一个参数时的构造方法,参数指定服务器地址,取默认端口10745

public ClientSocketDemo(String hostname)

{

try

{

//创建客户端socket,hostname参数指定服务器地址,端口号为10745

socket = new Socket(hostname,10745);

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

String ip = String.valueOf(socket.getLocalAddress());

String port = String.valueOf(socket.getLocalPort());

out.writeUTF("Hello Server.This connection is from client.");

out.writeUTF(ip);

out.writeUTF(port);

response = new String[3];

for (int i = 0; i response.length; i++)

{

response[i] = in.readUTF();

System.out.println(response[i]);

}

}

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

}

//执行过程中,有两个个参数时的构造方法,第一个参数hostname指定服务器地址

//第一个参数serverPort指定服务器端口号

public ClientSocketDemo(String hostname,String serverPort)

{

try

{

socket = new Socket(hostname,Integer.parseInt(serverPort));

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

String ip = String.valueOf(socket.getLocalAddress());

String port = String.valueOf(socket.getLocalPort());

out.writeUTF("Hello Server.This connection is from client.");

out.writeUTF(ip);

out.writeUTF(port);

response = new String[3];

for (int i = 0; i response.length; i++)

{

response[i] = in.readUTF();

System.out.println(response[i]);

}

}

catch(UnknownHostException e){e.printStackTrace();}

catch(IOException e){e.printStackTrace();}

}

public static void main(String[] args)

{

String comd[] = args;

if(comd.length == 0)

{

System.out.println("Use localhost(127.0.0.1) and default port");

ClientSocketDemo demo = new ClientSocketDemo();

}

else if(comd.length == 1)

{

System.out.println("Use default port");

ClientSocketDemo demo = new ClientSocketDemo(args[0]);

}

else if(comd.length == 2)

{

System.out.println("Hostname and port are named by user");

ClientSocketDemo demo = new ClientSocketDemo(args[0],args[1]);

}

else System.out.println("ERROR");

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

【ServerSocketDemo.java 服务器端Java源代码】

import java.net.*;

import java.io.*;

public class ServerSocketDemo

{

//声明ServerSocket类对象

ServerSocket serverSocket;

//声明并初始化服务器端监听端口号常量

public static final int PORT = 10745;

//声明服务器端数据输入输出流

DataInputStream in;

DataOutputStream out;

//声明InetAddress类对象ip,用于获取服务器地址及端口号等信息

InetAddress ip = null;

//声明字符串数组对象request,用于存储从客户端发送来的信息

String request[];

public ServerSocketDemo()

{

request = new String[3]; //初始化字符串数组

try

{

//获取本地服务器地址信息

ip = InetAddress.getLocalHost();

//以PORT为服务端口号,创建serverSocket对象以监听该端口上的连接

serverSocket = new ServerSocket(PORT);

//创建Socket类的对象socket,用于保存连接到服务器的客户端socket对象

Socket socket = serverSocket.accept();

System.out.println("This is server:"+String.valueOf(ip)+PORT);

//创建服务器端数据输入输出流,用于对客户端接收或发送数据

in = new DataInputStream(socket.getInputStream());

out = new DataOutputStream(socket.getOutputStream());

//接收客户端发送来的数据信息,并显示

request[0] = in.readUTF();

request[1] = in.readUTF();

request[2] = in.readUTF();

System.out.println("Received messages form client is:");

System.out.println(request[0]);

System.out.println(request[1]);

System.out.println(request[2]);

//向客户端发送数据

out.writeUTF("Hello client!");

out.writeUTF("Your ip is:"+request[1]);

out.writeUTF("Your port is:"+request[2]);

}

catch(IOException e){e.printStackTrace();}

}

public static void main(String[] args)

{

ServerSocketDemo demo = new ServerSocketDemo();

}

}


当前题目:java发送消息的源代码,java代码实现发送邮件
文章源于:http://cdxtjz.cn/article/hdepce.html

其他资讯