📦 jackjyq / COMP9331_Socket

📄 sender.cpython-36.pyc · 20 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
203

%j�[�
�@s�ddlZddlZdd�Zdd�Zdd�ZGdd	�d	�Zed
kr�e�ZdZdZ	ej
ejfZeee	�Z
eejd
��DZeje
j	�Ze
je�x&er�e
j�eje
j	�Ze
je�q�WWdQRXe
j�edejde
j�dS)�NcCs>tj�}|jdtd�|jdtd�|jdtd�|j�}|S)N�receiver_host_ip)�type�
receiver_port�file)�argparse�ArgumentParser�add_argument�str�int�
parse_args)�parser�args�r�I/tmp_amd/cage/export/cage/1/z5129432/Github/COMP9331_Socket/ass/sender.py�get_args	srcCs&t|�}td|�tt|��}||S)Nzsend package with checksum: )�get_checksum�print�bytes�list)�data�checksumrrr�add_checksums
rcCs�d}xptdt|�d�D]\}|dt|�krP||}||d}|||d>}q|dt|�krn|||7}qd�qW||d?}|d@}|d}|d}||fS)	Nr���zSomething Wrong here�i���)�range�len)�msg�s�i�a�bZhighZlowrrrr's
rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ReceivercCsB||_||_t�|_t�|_t�|_tjtjtj�|_	t
d�dS)NzSocket created!
)�
receiver_addr�buffer_sizer�package�payloadr�socket�AF_INET�
SOCK_DGRAM�sockr)�selfr%r&rrr�__init__AszReceiver.__init__cCs*||_t|�|_tt|j��|j|_dS)N)r(rrrrr')r-r(rrr�make_packageIs
zReceiver.make_packagecCs|jj�dS)N)r,�close)r-rrrr0MszReceiver.closecCs |jj|jt�}td|j�|S)Nzsend package with checksum: )r,�sendtor'r%rr)r-Z
sent_bytesrrr�send_packageOszReceiver.send_packagecCsNxH|j�|jj|j�\}}|d}|dkr:td|�Pqtd|�qqWdS)Nrrzreceived ACK from: zreceived NAK from: )r2r,�recvfromr&r)r-Zpkg�addrZackrrr�send_good_packageSs

zReceiver.send_good_packageN)�__name__�
__module__�__qualname__r.r/r0r2r5rrrrr$@s
r$�__main__z0.0.0.0i�rbz
SendZto)r)rrrrr$r6r
�hostr&rrr%�instance�openr�fd�readrr/r5r0rrrrr�<module>s(