Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
java
import java.io.IOException;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;
while(true)
{
Socket SOCK = SERVER.accept();
ConnectionArray.add(SOCK);
System.out.println("Client connected from :
"+SOCK.getLocalAddress().getHostName());
AddUserName(SOCK);
server_return_MyChat CHAT = new
server_return_MyChat(SOCK);
Thread X = new Thread(CHAT);
X.start();
}
}
catch(Exception X)
{
System.out.print(X);
}
}
CurrentUser.add(UserName);
for(int i = 1; i <=
server_MyChat.ConnectionArray.size(); i++)
{
Socket TEMP_SOCK =
(Socket)server_MyChat.ConnectionArray.get(i-1);
PrintWriter OUT = new
PrintWriter(TEMP_SOCK.getOutputStream());
OUT.println("#?!"+CurrentUser);
OUT.flush();
}
}
}
server_return_mychat.java
import java.net.*;
import java.io.*;
import java.util.Scanner;
Socket SOCK;
public server_return_MyChat(Socket X)
this.SOCK = X;
if(!SOCK.isConnected())
{
if(server_MyChat.ConnectionArray.get(i) == SOCK)
server_MyChat.ConnectionArray.remove(i);
TEMP_OUT.println(TEMP_SOCK.getLocalAddress().getHostName()+" disconnected...");
TEMP_OUT.flush();
System.out.println(TEMP_SOCK.getLocalAddress().getHostName()+" disconnected...");
try
try
while(true)
CheckConnection();
if(!INPUT.hasNext())
{
return;
MESSAGE = INPUT.nextLine();
TEMP_OUT.println(MESSAGE);
TEMP_OUT.flush();
System.out.println("send to : "+TEMP_SOCK.getLocalAddress().getHostName());
finally
SOCK.close();
catch(Exception X)
System.out.println(X);
}
client_mychat.java
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JOptionPane;
Socket SOCK;
Scanner INPUT;
PrintWriter OUT;
public client_MyChat(Socket X)
this.SOCK = X;
try
try
OUT.flush();
CheckStream();
}
finally
SOCK.close();
catch(Exception X)
System.out.print(X);
OUT.flush();
SOCK.close();
System.exit(0);
while(true)
RECEIVE();
}
public void RECEIVE()
if(INPUT.hasNext())
if(MESSAGE.contains("#?!"))
client_GUI_MyChat.JL_ONLINE.setListData(CurrentUser);
else
client_GUI_MyChat.TA_CONVERSATION.append(MESSAGE+"\n");
OUT.println(client_GUI_MyChat.UserName+" : "+X);
OUT.flush();
client_GUI_MyChat.TF_MESSAGE.setText("");
}
client_gui_mychat.java
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.*;
import java.net.*;
import java.io.PrintWriter;
import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
public client_GUI_MyChat() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
*/
@SuppressWarnings("unchecked")
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(255, 255, 153));
jLabel1.setText("My Chat");
B_CONNECT.setText("Connect");
B_CONNECT.addActionListener(new java.awt.event.ActionListener() {
B_CONNECTActionPerformed(evt);
});
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(B_CONNECT))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel8)
.addComponent(teksutkIP, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(B_CONNECT)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
jLabel4.setText("Logged in as");
B_DISCONNECT.setText("Disconnect");
B_DISCONNECT.addActionListener(new java.awt.event.ActionListener() {
B_DISCONNECTActionPerformed(evt);
}
});
jLabel5.setText("Conversation");
TA_CONVERSATION.setColumns(20);
TA_CONVERSATION.setRows(5);
jScrollPane1.setViewportView(TA_CONVERSATION);
jLabel6.setText("User Online");
jScrollPane2.setViewportView(JL_ONLINE);
jLabel7.setText("Message");
B_SEND.setText("Send");
B_SEND.addActionListener(new java.awt.event.ActionListener() {
B_SENDActionPerformed(evt);
});
L_LoggedInAs.setBorder(javax.swing.BorderFactory.createEtchedBorder());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel6))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
.addComponent(TF_MESSAGE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING,
javax.swing.GroupLayout.DEFAULT_SIZE, 241, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(L_LoggedInAs, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0,
Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(B_DISCONNECT)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(B_SEND, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel7)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)))
.addComponent(B_DISCONNECT, javax.swing.GroupLayout.Alignment.TRAILING))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel7)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(TF_MESSAGE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
try
ChatClient.DISCONNECT();
catch(Exception Y)
Y.printStackTrace();
BuildLogInWindows();
if(!TF_MESSAGE.getText().equals(""))
{
ChatClient.SEND(TF_MESSAGE.getText());
TF_MESSAGE.requestFocus();
/**
*/
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
*/
try {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
//</editor-fold>
try {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(client_GUI_MyChat.class.getName()).log(java.util.logging.Level.SEVER
E, null, ex);
java.awt.EventQueue.invokeLater(new Runnable() {
new client_GUI_MyChat().setVisible(true);
});
try
OUT.println(UserName);
OUT.flush();
Thread X = new Thread(ChatClient);
X.start();
catch(Exception X)
System.out.println(X);
System.exit(0);
//---------------------------------------------------------
LogInWindows.setSize(400,100);
LogInWindows.setResizable(false);
P_LogIn.add(L_EnterUserName);
P_LogIn.add(TF_UserNameBox);
P_LogIn.add(B_Enter);
LogInWindows.add(P_LogIn);
Login_Action();
LogInWindows.setVisible(true);
}
B_Enter.addActionListener(
new java.awt.event.ActionListener()
@Override
ACTION_B_ENTER();
);
if(!TF_UserNameBox.getText().equals(""))
UserName = TF_UserNameBox.getText().trim();
L_LoggedInAs.setText(UserName);
server_MyChat.CurrentUser.add(UserName);
LogInWindows.setVisible(false);
B_SEND.setEnabled(true);
B_DISCONNECT.setEnabled(true);
B_CONNECT.setEnabled(false);
Connect();
}
else