コード例 #1
0
ファイル: preferences.c プロジェクト: GNOME/xchat-gnome
static void
nickname_changed (GConfClient *client, guint cnxn_id,
                  GConfEntry *entry, gpointer data)
{
	gchar *text = gconf_client_get_string (client, entry->key, NULL);
	set_nickname (text);
	g_free (text);
}
コード例 #2
0
ファイル: mainwindow.cpp プロジェクト: alextyurin/udp_chat
void MainWindow::connect_clicked()
{
    ui->actionConnect->setEnabled(false);
    ui->actionDisconnect->setEnabled(true);
    m_connected_clicked = true;
    //TODO: Чтение из гуи
    m_server_address = QHostAddress::LocalHost;
    m_server_port = 10000;

    QTime midnight(0,0,0);
    qsrand(midnight.secsTo(QTime::currentTime()));
    QString nickname = "User" + QString::number(qrand() % 10000);

    set_nickname(nickname);
    try_to_connect(m_server_address, m_server_port);
    QTimer *timer = new QTimer(this);
    QObject::connect(timer, SIGNAL(timeout()), this, SLOT(repeat_connect()));
    timer->start(2000);
}
コード例 #3
0
ファイル: numbers.c プロジェクト: choppsv1/ircii
static	void
nickname_sendline(u_char *data, u_char *nick)
{
	int	new_server, server;

	new_server = my_atoi(data);
	server = parsing_server();
	set_from_server(new_server);
	if (nick && *nick)
	{
		send_to_server("NICK %s", nick);
		if (new_server == get_primary_server())
			set_nickname(nick);
		server_set_nickname(new_server, nick);
	}
	set_from_server(server);
	already_doing_reset_nickname = 0;
	update_all_status();
}
コード例 #4
0
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  tcp_read
 *  Description:  Read characters from tcp socket.
 * =====================================================================================
 */
    void
tcp_read ( struct chat_client *chat_client_p ){
    char buffer[MAX_BUFFER_LEN];
    char message[MAX_MESSAGE_LEN];
    int retval;
    int retval_command;
    int nsfd;
    char *hello = "Bitte gib deinen Nickname ein: ";
    int len;
    int message_terminated;

    nsfd = chat_client_p->socket;

    // Tell client that he has to enter his nickname first
    send(nsfd, hello, strlen(hello), 0);

    for(;;){
        // clean memory
        memset(&buffer[0], 0, sizeof(buffer));
        memset(&message[0], 0, sizeof(message));

        // read message from socket
        retval = read(nsfd, buffer, sizeof(buffer));

        //if a client disconnectes, we leave the function and the threads ends
        if(retval == 0){
            close_connection(chat_client_p);
            return;
        }

        // Use strnpy and strncat, since we don't send binary data that's ok
        if (retval != -1){
            if(strlen(chat_client_p->nickname)==0){
                set_nickname(chat_client_p, buffer);

                strncpy(message, chat_client_p->nickname, MAX_BUFFER_LEN);
                strncat(message, " joined chat\n", MAX_BUFFER_LEN);
                write_message( chat_client_p, message);
            }
            else{
                retval_command = handle_command(chat_client_p, buffer);

                // command found and handled
                if(retval_command == 0){
                    continue;
                }
                // command found, but we want to exit this function
                else if(retval_command == -1){
                    return; 
                }
                
                // write nickname, if the last message was terminated by \n
                if(message_terminated){
                    strncpy(message, chat_client_p->nickname, MAX_NICK_LEN);
                    strncat(message, ": ", 2);
                    strncat(message, buffer, MAX_BUFFER_LEN);
                }
                else{
                    strncpy(message, buffer, MAX_BUFFER_LEN);
                }

                write_message(chat_client_p, message);
            }

            // check if the message is \n terminated
            len = strlen(message);
            if(message[len-1] == '\n'){
                message_terminated = 1;
            }
            else{
                message_terminated = 0;
            }
        }
    }
}