Port type help you to define operations that a web service performs. These operations are unaware of transport protocol that we are going to use at runtime. So these operations are transport protocol agnostic.
Binding help you to define how these operation's request and response data is transported over the wire according to which
SOAP version.
For example -
You have a web service which perform book query and return book name.
You have a set of Clients of your Web Service who want to call and consume web service operations through
JMS protocol.
You can another set of Clients of your Web service who want to call and consumer Web service operations through
HTTP protocol.
So for such requirement, it will be tedious ( and non - manageable) if we have to define and deploy two set of Web service to cater to these two different set of Client (JMS based client and HTTP based Client).
Therefore, Binding declaration help us in defining two ways to access web service operations - through JMS and through HTTP. So we have to deploy single Web Service but we expose two end point address of same web service - one end point address can be used by JMS based client and another end point address can be used by HTTP based client.